专栏首页业余草Spring4.0MVC学习资料,Controller中的方法详解和使用(四)

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

在以前,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;
	}
	
}

好吧就到这里结束了吧,我们下章再见。欢迎大家关注我的博客!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分享一个 Python + Django 实现的电商小项目

    编辑:业余草 来源:https://www.xttblog.com/?p=4944

    业余草
  • 你意想不到的的编程问题

    以上两个位置1和2输出结果不相同,这是为什么呢? 详细解释见:http://www.evget.com/article/2015/11/19/23028.ht...

    业余草
  • jQuery Mobile中jQuery.mobile.changePage方法使用详解

    jQuery.mobile.changePage方法用的还是很多的。作为一个老手,有必要对jQuery mobile中实用方...

    业余草
  • 【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】

      之前一直是使用Eclipse创建Web项目,用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题,这里把这个过程记录一下,希...

    弗兰克的猫
  • 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解

    上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置。今天我们来详细的研究一下DispatcherS...

    I Tech You_我教你
  • Spring快速入门

    Spring源码剖析一书,非常细致,但对于个人来说,意义不算特别的大,因此选其可用部分做个记录就好。 ? 功能 示例 配置文件的解析...

    用户1216676
  • springMVC系列(二)——两种搭建方式

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • SpringMVC<一> 基本结构与配置

    刚刚踏入SpringMVC的学习,有一定Strust2的使用经验,边看书看博客,边总结,如有不对的地方还希望各位大佬多多指正。

    Rekent
  • SpringMVC详解(一)------入门实例

      本系列教程我们将详细的对SpringMVC进行介绍,相信你在学完本系列教程后,一定能在实际开发中运用自如。 1、什么是 SpringMVC ?   在介绍什...

    IT可乐
  • springmvc之第一个springmvc程序

    说明:DispatcherServlet会拦截index.jsp的helloworld请求,并在handler中寻找匹配的路径。通过@RequesMapping...

    绝命生

扫码关注云+社区

领取腾讯云代金券