导航

springMVC

Posted on 2013-11-20 13:59  wantany  阅读(367)  评论(0)    收藏  举报

* springMVC是一种spring自带的MVC框架,与struts1相同,是基于servlet的(struts2 是基于 filter的)。
首先框架提供了一个DispacherServlet,用于接收客户端请求,并进行分发
其中分发是根据HandlerMapping进行的。
分发给Controller(相当于struts2中的action)
Controller的返回值为ModelAndView对象
返回值交给DispacherServlet,但DispacherServlet无作为,直接交给ModelAndView,ModelAndView再转交给ViewResolver视图解析器(此处直接交给ViewResolver就好了,为什么还要交给DispacherServlet?)
ViewResolver最终生成View,生成jsp、html等返回给客户端

其中DispacherServlet,HandlerMapping,ModelAndView,ViewResolver都是spring自带的,我们需要自己写的只是Controller 与View

* 创建一个简单的springMVC
1.首先创建一个java web 项目
在web.xml中配置DispacherServlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-maping>
<servlet-name>action</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-maping>
2.创建自己的控制器
该控制器要继承一个AbstractController,其中有个默认的方法handleRequestInternal,其返回值为ModelAndView类型
3.创建spring配置文件
配置内部资源视图解析器
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourseViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsps/"></property>
<!--后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
这样,当Controller的返回值为new ModelAndView("hello");时,真正的返回值为/WEB-INF/jsps/hello.jsp
配置Controller
<bean name="/hello.action" class="自己的Controller类"></bean>
这样,在浏览器中访问/hello.action就会跳转到hello.jsp页面了