Spring 3:将page.html映射到page.jsp

Bli*_*1eg 5 java spring spring-mvc

我正在使用Spring 3,我不知道如何在没有控制器的情况下将somepage.htm映射到somepage.jsp.那就是:如果我去somepage.htm,我希望它能告诉我jsp.但当然没有重定向.我不希望任何人只看到".jsp"".htm"

 <servlet>
    <servlet-name>Training01</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
    <servlet-name>Training01</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
    <value>/jsp/</value>
</property>
<property name="suffix">
    <value>.jsp</value>
</property>
Run Code Online (Sandbox Code Playgroud)

Kar*_*ran 5

要做的是将<mvc:view-controller..>标记与视图解析器结合使用.

有关更多文档, 请参见此处

<mvc:view-controller..>标签将URL映射到的意见.因此,如果您想将相对URL映射/login到视图名称登录,您可以通过将以下行添加到您的webmvc-context.xml文件来实现:

<mvc:view-controller path="/login" view-name="login" />
Run Code Online (Sandbox Code Playgroud)

当然,要使其工作,您必须有一个视图解析 - 将逻辑名称映射到特定视图的东西 - 在您的上下文中设置.在您的情况下,因为您使用直接jsps查看图层,所以您需要在配置中添加以下内容:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  <property name="prefix" value="/WEB-INF/jsp/"/>
  <property name="suffix" value=".jsp"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

所以使用这个设置,如果你的目录中有一个jsp login.jsp,/WEB-INF/jsp那么你就可以从url直接引用那个jsp了www.myapp.com/mycontenxtroot/login

有关视图解析器的更多信息,请参见此处: