Spring mvc 学习(一)

spring 的MVC中,提供控制器的是org.springframework.web.servlet.DispatcherServlet负责分发控制对象。

在WEB.XML中配置。

<servlet>

<servlet-name>hello</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/mvc-config.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

  </servlet>

 <servlet-mapping>

<servlet-name>hello</servlet-name>

<url-pattern>*.do</url-pattern>

  </servlet-mapping>

在WEB.XML中定义个控制器的实例,所有以*.do结尾的请求都由控制器来处理。contextConfigLocation参数来设置BEAN定义文件的位置和名称,如果不设置,则默认使用SERVLET为前置,读取SERVLET名称-servelt.xml作为BEAN定义文件。你也可以设置多个BEAN的定义文件来源:

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/mvc-config.xml,/WEB-INF/mvc-config.xml</param-value>

    </init-param>

SPRING的MVC框架中控制器要实现org.springframework.web.servlet.mvc.Controller接口,然后必须实现其

public ModelAndView handleRequest(HttpServletRequest request,   HttpServletResponse response) throws Exception

方法。

处理完以后回传,org.springframework.web.servlet.ModelAndView实例,包括了要呈现在VIEW层数据。

JAVA代码:

public ModelAndView handleRequest(HttpServletRequest request,

HttpServletResponseresponse)throwsException{

returnnewModelAndView("hello","hello",greeting);

 }

ModelAndView的第一个参数为要呈现的目标网页,第二个参数来设置取得MODEL对象的KEY,而第三个参数是给VIEW层的数据对象。

然后在mvc-config.xml配置视图跳转代码:

 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<propertyname="prefix"value="/WEB-INF/jsp/"></property>

<propertyname="suffix"value=".jsp"></property>

 </bean>

<bean name="/hello.do" class="com.action.HelloAction">

<propertyname="greeting">

<value>hello5566</value>

</property>

</bean>

  

实际上DispatchServlet 必须根据一个HandlerMapping来决定请求由哪一个CONTROLLER,如果不配置默认采用BeanNameUrlHandlerMapping也就是根据BEAN定义时的NAME属性及用户请求的URL来决定使用哪一个CONTROLER实例。

在该例子中,请求hello.do时候,控制器根据hello.do的名称,决定使用name为hello.do的BEAN的实例。当CONTROL传回MODELANDVIEW后,控制器可以配置一个viewResolver实例来将对应的请求进行转发。

因为我们现在使用的是JSP技术,所以配置org.springframework.web.servlet.view.InternalResourceViewResolver,需要设置,viewClass,该参数中有两个参数prefix,suffix,这两属性会与MODELANDVIE传回的路径相结合,例如传回hello字符串,则返回的JSP的实际路径就是、/WEB-INF/jsp/hello.jsp

相关推荐