基本的に、プロジェクトの開発中に新しいウィンドウを開くときに問題が発生しました。JavaScript の window.open() は使いたくありません。
私は jsf+spring+hibernate フレームワークを使用しています。ユーザーがシステムにログインすると (Spring Security を使用)、2 つのページが表示されます。1 つは元のタブにあり、もう 1 つはポップアップでなければなりません。新しいブラウザを開く方法を見つけました。ここにあります:
public class LaunchBlackBoard {
public static void runBrowser(String webSite) {
try {
Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported()
&& desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = new URI(webSite);
desktop.browse(uri);
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}
これが問題です。このクラスは、現在実行中のブラウザではなく、デフォルトのブラウザを開くために使用されます。ユーザーがデフォルト以外のブラウザを使用してログインすると、デフォルトのブラウザが開きます。この場合、セッションの問題により、新しいタブはセッションが失われたために認証されません。
現在、同じブラウザーで新しいタブを開くか、あるブラウザーから別のブラウザーにセッション オブジェクトを渡す方法を見つけたいと考えています。何か良いアイデアはありますか?どうもありがとう。