在以前,mvc的框架,基本上就是struts框架了。但是现在不一样了。springmvc出来了。spring的mvc框架不亚于struts了,springmvc出来了,我们有了更多的选择。
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring
MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
jar包引入我就不讲了,在前面几章已经说过,而且我的下载资源里也有相应的jar包进行下载。
我们看看web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- Spring MVC配置 --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:com/herman/ss/config/testAjax.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.herman</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
在看看spring配置文件,testAjax.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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- 启用spring mvc 注解 --> <context:annotation-config /> <!-- 自动注解 --> <context:component-scan base-package="com.herman.ss.controller"></context:component-scan> <!-- 配置http请求的json映射消息转换器 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <!-- 完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter"/> </list> </property> </bean> <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix="" /> </beans>
ok,一切准备就绪,看看HermanController.java
package com.herman.ss.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("super") public class HermanController { @RequestMapping("testAjax") @ResponseBody public String testAjax(){ System.out.println("我是测试Spring mvc的......"); return "{id:4,text:'Spring mvc'}"; } @RequestMapping("html") public String testHtml(){ //请求被重定向到herman.jsp页面 return "redirect:/herman.jsp"; } @RequestMapping("testforward") public String testforward(){ //请求被转发到forward.jsp页面 return "forward:/forward.jsp"; } @RequestMapping(value="root") public String root(){ return "root.jsp"; } @RequestMapping(value="test") public String test(){ return "html/test.html"; } @RequestMapping(value="suffix") public String suffix(){ //如果想返回不带后缀的页面,则必须在配置xml中配置p:suffix="" //如:p:suffix=".jsp" return "suffix"; } @RequestMapping(value="mav") public ModelAndView mav(){ //如果想返回不带后缀的页面,则必须在配置xml中配置p:suffix="" //如:p:suffix=".jsp" ModelAndView mav=new ModelAndView(); mav.setViewName("html/mav.html"); return mav; } @RequestMapping(value="request") public ModelAndView request(HttpServletRequest request, HttpServletResponse response){ //带request请求参数的示例 //如:p:suffix=".jsp" ModelAndView mav=new ModelAndView(); mav.setViewName("html/mav.html"); System.out.println(request.getParameter("testVale")); return mav; } @RequestMapping(value="request") public ModelAndView session(HttpSession httpSession, HttpServletResponse response){ //带request请求参数的示例 //如:p:suffix=".jsp" ModelAndView mav=new ModelAndView(); mav.setViewName("html/mav.html"); return mav; } }
好吧就到这里结束了吧,我们下章再见。欢迎大家关注我的博客!!
如有不懂,疑问或者欠妥的地方,也或者需要源码,请加QQ群:135430763 进行反馈,共同学习!
Spring4.0MVC学习资料,Controller中的方法详解和使用(四)
时间: 2024-10-09 01:16:03