Spring Mvc——Controller中常规方法示例

一,简单无参数地址访问

首先来看下类标记:

/**
 * Created by LiuHuiChao on 2016/3/21.
 */
@Controller
@RequestMapping("/hello")
public class HelloMvcController {

简单进行类中方法的访问:

/*简单访问示例*/
	@RequestMapping("/mvc")
	public String helloMvc() {
		return "home";
	}

二,使用Servlet api方式获取参数

/* request方式获取参数 */
	@RequestMapping("/views3")
	public String viewCourse3(HttpServletRequest request) {
		Integer courseId = Integer.valueOf(request.getParameter("courseId"));
		System.out.println(courseId);
		return "home";
	}

三,通过方法参数方式获取

/* 本方法处理 /hello/view?courseId=123 */
	@RequestMapping(value = "/views", method = RequestMethod.GET)
	public String viewCourse(@RequestParam("courseId") Integer courseId) {
		System.out.println(courseId);
		return "home";
	}

四,restful 风格URL参数获取

/* restful 风格URL示例 */
	/* 本方法处理 /hello/view/{courseId} */
	@RequestMapping(value = "/views/{courseId}", method = RequestMethod.GET)
	public String viewCourse2(@PathVariable("courseId") Integer courseId,
			Map<String, Object> model) {
		System.out.println("restful风格URL示例测试---" + courseId);
		// model.put("course",courseId);
		return "home";
	}

五,重定向操作

/*重定向操作*/
	@RequestMapping(value = "/save", method = RequestMethod.POST)
	public String doSave(@ModelAttribute Course course) {
		// 再此处进行save操作
		return "redirect:views/" + course.getCourseId();// 重定向
	}

六,接收上传的文件

/*上传文件示例*/
	@RequestMapping(value="/doUpload",method=RequestMethod.POST)
	public String doUploadFile(@RequestParam("file") MultipartFile file){

		if(!file.isEmpty()){
			System.out.println("请在这里写入对文件的操作");
			//写入文件等操作。。。。
		}

		return "success";
	}

另外,还需要在spring mvc的配置文件中加入:

 <!-- 配置上传文件 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    	<property name="maxUploadSize" value="209715200"/>
    	<property name="defaultEncoding" value="UTF-8"/>
    	<property name="resolveLazily" value="true"/><!-- 延迟加载 -->

    </bean>
时间: 03-23

Spring Mvc——Controller中常规方法示例的相关文章

spring mvc controller中获取request head内容

spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public String print(@PathVariable Integer mlid, @PathVariable String ptn, @PathVariable String name, HttpSession session, Model model, @RequestHeader String referer,

Spring MVC Controller中解析GET方式的中文参数会乱码的问题

Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用Spring老是碰到一个问题,使用Controller处理GET方式的请求参数时,服务端得到的结果会碰到乱码,之前翻阅了很多与Java EE相关的很多乱码处理资料,不管是加过滤器还是统一文件编码,都没能正确解决,后来设计接口时,一直采用先Base64,然后再作为参数传过来的方式解决的.最近找到了根本的解决方案,顺手记下来. 为何会乱码 Spring MVC 是基于Servlet,在Http请求

Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)

Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办法. 为何会乱码 Spring MVC 是基于Servlet,在Http请求到达Servlet解析之前,GET过来的URL已经被Tomcat先做了一次URLDecode.Tomcat对GET方式默认的URL解码结果是iso-8859-1而不是我认为的UTF-8. 解决方案 解决方案也很简单,除了平常

spring mvc Controller中使用@Value无法获取属性值

在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.springframework.web.servlet.DispatcherServlet 这里最终是使用WebApplicationContext parent =WebApplicationContextUtils.getWebApplicationContext(getServletContext

spring mvc controller中的异常封装

http://abc08010051.iteye.com/blog/2031992 一直以来都在用spring mvc做mvc框架,我使用的不是基于注解的,还是使用的基于xml的,在controller里一般都会加上一个异常捕捉,能分析出来的异常,提示出具体信息,不能预料的异常,返回一个统一的异常提示信息,未封装前的代码为: Java代码   public ModelAndView addBigDeal(HttpServletRequest request, HttpServletRespons

spring mvc controller中方法 为基本类型 且调用时传入了null 报如下错误

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter 'type' is present but cannot be translated into a null value due to being declared as a primit

Spring MVC环境中文件上传大小和文件类型限制以及超大文件上传bug问题

    在上一篇文章中,主要介绍了Spirng MVC环境下的正常情况下文件上传功能实现.在实际开发的时候,还会涉及到上传文件大小和类型的限制,接下来就会对Spirng MVC环境下文件上传大小和类型的限制进行介绍,还会讲解到文件上传大小tomcat服务器bug问题及解决方案. 一.文件上传大小限制 这里还是接着上篇文章先介绍Spring MVC下的文件上传大小限制,文件上传大小的限制在springmvc-config.xml中配置文件解析器CommonsMultipartResolver时即可

Spring MVC Controller单例陷阱

Spring MVC Controller默认是单例的: 单例的原因有二: 1.为了性能. 2.不需要多例. 1.这个不用废话了,单例不用每次都new,当然快了. 2.不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例. 我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了. 因此,只要controller中不定义属性,那么单例完全是安全的.下面给个例子说明下: package com.lavasoft.dem

Spring MVC Controller与jquery ajax请求处理json

在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: var cmd = {orders:[{"storeId":"0a1", "address":"西斗门路2号", "goods":[{"goodsId":"1"}, {"goodsId":"2"},