1

InternalResourceViewResolverあるビューをレンダリングするためにSpringから使用しています/WEB-INF/view。ビューでも JSTL を使用します。<url-pattern>ここで、DispatcherServletinの変更後に問題が発生し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.ApplicationHttpRequestJSPビューファイルのインスタンスですがorg.apache.catalina.connector.RequestFacade、コントローラーのJavaコードのインスタンスです。

<uri-patter>幸いなことに、これまでは単独でインストールしており、サーブレットのパスを気にする必要はありませんでした。ただし、このプロジェクトでは他のシステムとの統合が必要なため、ビュー ファイルからサーブレット パスを取得して、メニューまたはフォーム アクション ターゲットの正しい URL をマップします。

/h2oビュー ファイルから正しいサーブレット パス ( ) を取得する方法はありますか?

4

2 に答える 2

1

コントローラ コードで request.getServletPath() の結果をリクエスト スコープの変数に入れ、それを JSP の jstl で参照します。

于 2013-01-12T16:59:32.553 に答える