Spring4.0MVC学习资料,Controller中的方法详解和使用(四)

简介: <p>在以前,mvc的框架,基本上就是struts框架了。但是现在不一样了。springmvc出来了。spring的mvc框架不亚于struts了,springmvc出来了,我们有了更多的选择。</p> <p>Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块

在以前,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   进行反馈,共同学习!

目录
相关文章
|
1月前
|
缓存 Java API
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
|
1月前
|
存储 NoSQL Java
Spring Boot统计一个Bean中方法的调用次数
Spring Boot统计一个Bean中方法的调用次数
32 1
|
27天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
使用JDBCTemplate实现与Spring结合,方法公用 ——测试(EmpDaoImplTest)
8 0
|
4月前
|
Java 开发者 Spring
Spring中获取Bean对象的三种注入方式和两种注入方法
Spring中获取Bean对象的三种注入方式和两种注入方法
|
4月前
|
存储 Java 程序员
浅析Spring的五大类注解和方法注解
浅析Spring的五大类注解和方法注解
|
4月前
|
SQL 监控 druid
p6spy【SpringBoot集成】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)
p6spy【SpringBoot集成】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)
178 0
|
27天前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
121 0
|
27天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)
使用JDBCTemplate实现与Spring结合,方法公用 ——Emp实现类(EmpDaoImpl)
6 0
|
27天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
9 1
|
27天前
|
Java Spring
使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
使用JDBCTemplate实现与Spring结合,方法公用 ——接口(BaseDao)
8 0