春のブーツは、JSPビューをサポートしていないことをどこでも書かれています。その公式文書では3つの理由があります
- あなたが戦争のパッケージを使用する場合のJettyとTomcatを使用すると、それが動作するはずです。実行可能な戦争は、java -jarで起動時に動作しますし、また任意の標準コンテナに配備可能になります。実行可能なjarファイルを使用した場合のJSPはサポートされません。
- 引き波はJSPをサポートしていません。
- カスタムerror.jspページを作成すると、エラー処理のデフォルトのビューを上書きしません。カスタムエラーページが代わりに使用する必要があります。
最初の項目については、「実行可能ジャーを使用する場合JSPがサポートされていません」。私はapplication.propertiesにTomcatの-埋め込む-碧玉とセット正しいリソースパスへの参照を追加する場合でも、JSPファイルも同様にレンダリングすることができます。
私は、これは春のブーツは、tomcatの-埋め込む-碧玉などの他の参照LIBSをinvovlingせずに、JSPサポートしていないことを意味すると思います。
しかしthymleafのために、我々はまた、輸入スプリング・ブート・スタータthymeleafに持っています。なぜ我々は、余分なLIBSが関与している春のブートサポートthymleafを言うことができます。
だから、どのように私は、ドキュメント内の最初の項目を理解することができますか?
(実行可能なjarファイルを作成するためにspringbootに使用されている)組み込みTomcatのパッケージには、我々はモジュールを追加する必要があり、デフォルトでJSPが含まれていません“org.apache.tomcat.embed:tomcat-embed-jasper”
well.Thatは、私たちが追加されている理由であるとtomcat-embed-jasper
私たちはJSTLタグを使用することができるようにすることを、springbootに依存関係としてJSPインチ
springbootは、ビューリゾルバなどJSPで正しく動作しない主な理由、*jar
パッケージとして使用されているがためであるTomcatの中にハードコーディングされたファイルパターン【選択の問題は、使用しているときということですjava -*.jar
springbootアプリケーションをデプロイするために、JSPファイルではないでしょう埋め込まれたTomcatの中に存在しても、要求にサービスを提供しようとしたときには、取得する404ページが見つかりません。これは、JSPファイルのコピー元取得されていないことを、理由のjarパッケージであるWEB-INF
あなたは下のJSPファイルを保つfolder.If META-INF/resources
それが動作するはずですパッケージとしてjarファイルを使用しているフォルダ。
Thymeleafは、彼らが静的ファイルとして表示し、中に入れることができることを意味し、プロトタイプとしてテンプレートを使用することができますresources/templates
がありますup.But JSPファイルを選択する春のフォルダJSTLタグなど、彼らは次のように設定することはできませんので、レンダリングの前にジャスパーでtranspiledする必要があります私の知識に基づいて静的ファイル。
使用する場合はWAR(webアプリケーションアーカイブ)を、パッキンが自動的に次のプロジェクト構造からリソースがかかります。
|-- pom.xml
`-- src
`-- main
|-- java
| `-- com
| `-- example
| `-- projects
| `-- SampleAction.java
|-- resources
| `-- images
| `-- sampleimage.jpg
`-- webapp
|-- WEB-INF
| `-- web.xml
|-- index.jsp
`-- jsp
`-- websource.jsp
JSPでspringbootを使用するためのガイドと公式のサンプル:ガイド、サンプルレポ
実装構造のWARは下のJSPファイルを保つことを主張しwebapp/
たフォルダと期待どおりに動作します。webappフォルダからファイルをコピーしますMavenの戦争の目標WEB-INF
JSPのように、すべてのリソースファイルは、ここで戦争packaging.Fromのルートになります、のmaven-再パッケージの目標や春ブーツ再パッケージはjarファイル/戦争を作るの面倒を見ますファイルはorginal戦争中に存在している場合well.Theとしてexecutable.Soは、それが実行可能な1になります実行可能な戦争の構造をspringboot次のとおりです。
example.war | +-META-INF | +-MANIFEST.MF +-org | +-springframework | +-boot | +-loader | +-<spring boot loader classes> +-WEB-INF +-classes | +-com | +-mycompany | +-project | +-YourClasses.class +-lib | +-dependency1.jar | +-dependency2.jar +-lib-provided +-servlet-api.jar +-dependency3.jar
コメントのためにそう:
フォルダ内のJSPファイルを置く場合はsrc/main/resources
、このディレクトリに置かれているものは、自動的にコピーされますWEB-INF/classes
あたりのようWARの ドキュメント。
あなたはSRC /メイン/リソースの下にJSPファイルを保持し、YMLまたはプロパティファイルに次のように設定するのであれば、それはWAR archives.Iのために働く必要がないように注意してくださいので、それを試していません。
spring.mvc.view.prefix = /WEB-INF/classes/templates
spring.mvc.view.suffix = .jsp