1つのJavaクラスと1つのjspを持つHello-Worldアプリケーションがあります。JSPは、JSPに埋め込まれているテキストをJavaクラスから出力します。 。(2つのものを出力します)
私は指示に従いました ここ アプリケーションを作成してデプロイし、それは(ほとんど)機能します! JSPを呼び出すことができ、ページが正しく表示されます。 Intellijリロードボタンを押した後、Javaクラスの変更をホットスワップすることもできます。
問題:JSPを変更しても、ブラウザに反映されません。
私は以下を確認しました:
何かご意見は?
Intellij IDEA 10.0.3を使用していますが、同じ問題が発生しました。Tomcatサーバーの設定を確認して解決しました-"フレームの非アクティブ化時にリソースを更新" [実行/デバッグ構成]セクションの設定。これがお役に立てば幸いです。
この質問に答えると、IntelliJ IDEAはバージョン13.0.2です。この質問が行われたため、オプションが少し異なります。つまり、プロジェクトの[構成の実行/デバッグ]パネルを使用します。 :
これらの2つの手順を順番に実行すると、IDEAがフォーカスを失ったとき(つまり、フォーカスをWebブラウザーに変更したとき)にプロジェクトが「ホットスワップ」されます。
完全な手順は http://www.jetbrains.com/help/idea/2016.1/updating-applications-on-application-servers.html?search=application%20servers で入手できます。
編集してみてくださいRun/Debug Configuration
、[展開]タブに移動し、展開されたwarファイルを展開します。
数年前、変更された時刻に変更があったときに、jspを再コンパイルするようにTomcatを構成しました。最近、同じ設定を試しましたが、うまくいきませんでした。
私の状況では、確認する必要のある変更は主にhtmlの変更であったため、ほとんどのhtmlを別のhtmlファイルにカプセル化することができました。次に、読み取ったファイルを使用して、その内容をjsp内に含めます。その後、再デプロイせずに、ブラウザーに反映されたhtmlへの変更を即座に取得することができました。 jspインクルードはトリックを行わず(htmlをキャッシュした)、Javaヘルパー内のファイルリーダーを使用してファイルを読み取って文字列をjspに返す必要があったことに注意してください(できます)。 Javaロジックをjspに入れますが、それはmvcのようなものではありません)
このアプローチの1つの注意点は、変数データをファイル読み取りhtmlにマージすることです。使用できるアプローチはいくつかあります。 1.独自の文字列置換アルゴリズムを作成し、ヘルパーアプリに文字列を動的に置換させます2.変数データをjavascriptブロックに出力し、javascriptにファイル内のhtml値を更新させますhtmlブロックを読み取ります(javascriptチョップをプルする必要があると仮定します)そのオフ)。