SpringMVC-mvc:view-controller+mvc:annotation-driven
在springmvc中通过前端jsp发送一个action可以不经过前端控制器,直接转发到对应的界面。设置方法为:只是需要在springmvc.xml中添加mvc:view-controller的配置即可。但是设置了这个配置之后,在前前端控制器中将不能再使用@requestMapping。解决方法为:再在springmvc.xml中添加mvc:annotation-driven。其内部原理为:添加了mvc:view-controller后前端控制器内部会减少创建一个对应的类。添加mvc:view-controller后其内部会继续生成原来三个类。
代码示例:
前端发送请求jsp:
<a href="${pageContext.request.contextPath}/testView">测试testView</a>
前端跳转jsp(result.jsp):
<h1>结果页jsp</h1>
springmvc.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="com.helong"/>
<!--
mvc:view-controller
当发送一个请求时,如果没有找到对应的mapping
则会在配置文件中匹配mvc:view-controller
注意:配置了这个方式跳转界面之后,在前端控制器中的requestMapping就不能再使用了。
解决方法:添加<mvc:annotation-driven/>
-->
<mvc:view-controller path="testView" view-name="/result.jsp"/>
<!--解决方法:添加mvc:view-controller-->
<mvc:annotation-driven/>
</beans>