前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring4.0MVC学习资料,Controller中的方法详解和使用(四)

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

作者头像
业余草
发布2019-01-21 15:19:06
3730
发布2019-01-21 15:19:06
举报
文章被收录于专栏:业余草业余草

在以前,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的配置:

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
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;
	}
	
}

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年08月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档