今天我正在研究Java Spring中的一个项目,特别是在CONTEXT-SERVLET.xml
(上下文)中,通常声明一个bean将.jsp
与Java类或控制器(映射)相关联。
传统工作流程是:viewA.jsp
已链接(映射)到controller.java
(控制器),此controller.java
会调度另一个viewB.jsp
。
您是否可以在不通过控制器的情况下将viewA.jsp
链接到另一个viewB.Jsp
?
在CONTEXT-SERVLET.xml
中如何做到这一点?
答案 0 :(得分:1)
您可以使用ParameterizableViewController
将请求重定向到jsp文件,而无需访问控制器
例如
1.将/welcome.htm
映射到welcomeController
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome.htm">welcomeController</prop>
</props>
</property>
</bean>
2。将viewName
的{{1}}属性映射到welcomeController
WelcomePage
3。定义视图解析器
<bean name="welcomeController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="WelcomePage" />
</bean>
它会将<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
映射到/welcome.htm
Source了解更多详情。
答案 1 :(得分:1)
&LT; mvc:view-controller path =“/”view-name =“home”/&gt;
这是定义ParameterizableViewController的快捷方式,该方法在调用时立即转发到视图。如果在视图生成响应之前没有要执行的Java控制器逻辑,请在静态情况下使用它。