5

私はたくさんグーグルして答えを得ます:

<c:out value="${pageContext.request.requestURI}" />

しかし、私は得る/myapp/WEB-INF/views/index.jsp

私は手に入れたい/myapp/index

どうやってやるの?

私のプロジェクトはspring mvcを使用しています。spring-mvc.xml の私の設定:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/WEB-INF/views/"/>
         <property name="suffix" value=".jsp"/>
</bean>

私の/WEB-INF/views/には、index.jspがあります

私のコントローラー:

@RequestMapping("/index")
public String welcome() {
    return "index";
}

を表示するとlocalhost:8088/myapp/index、表示されます。

4

1 に答える 1

12

使ってみて${requestScope['javax.servlet.forward.servlet_path']}

javax.servlet.forward.*定数は、渡された URI に基づいて情報を取得しますgetRequestDispatcher()(Spring Web MVC の場合、DispatcherServlet はリクエストの処理中にこの属性を設定します)。ただし、フレームワークや Web コンテナーからは独立しています。

ドキュメントが言うようFORWARD_SERVLET_PATHに:

転送のターゲットが元のサーブレット パスを使用できるようにする要求属性の名前

forward()また、が を呼び出して動作する場合getNamedDispatcher()、これらの属性 (さらに 4 つの同様の属性があります: request_uricontext_pathpath_infoおよびquery_string) が設定されないことにも注意してください。この場合、パスの最初の要素は変更されないためです。

于 2013-05-31T08:30:40.063 に答える