にInternalResourceViewResolver
あるビューをレンダリングするためにSpringから使用しています/WEB-INF/view
。ビューでも JSTL を使用します。<url-pattern>
ここで、DispatcherServlet
inの変更後に問題が発生しweb.xml
ます。
サーブレットのパスを取得しようとしました${pageContext.request.servletPath}
が、コントローラーの Java コード内で返される/WEB-INF/view/skel/welcome.jsp
一方で、WEB-INF ディレクトリからのパスが返されます。ビュー ファイル ( ) にも返されます。request.getServletPath()
/h2o
<% out.print(request.getServletPath()); %>
/WEB-INF/view/skel/welcome.jsp
/WEB-INF/view/skel/welcome.jsp
コントローラーのJavaコードとJSPビューファイルのリクエストインスタンスの違いから来ているようです。リクエストはorg.apache.catalina.core.ApplicationHttpRequest
JSPビューファイルのインスタンスですがorg.apache.catalina.connector.RequestFacade
、コントローラーのJavaコードのインスタンスです。
<uri-patter>
幸いなことに、これまでは単独でインストールしており、サーブレットのパスを気にする必要はありませんでした。ただし、このプロジェクトでは他のシステムとの統合が必要なため、ビュー ファイルからサーブレット パスを取得して、メニューまたはフォーム アクション ターゲットの正しい URL をマップします。
/h2o
ビュー ファイルから正しいサーブレット パス ( ) を取得する方法はありますか?