数据传递-------@RequestParam

package com.wh.handler;
/**
 *  @RequestParam是传递参数的.
 *  @RequestParam用于将请求参数区数据映射到功能处理方法的参数上。
 *  
 *  public String queryUserName(@RequestParam String userName)
 *  在url中输入:localhost:8080/?userName=zhangsan
 *  
 *  请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。
 *  接下来我们看一下@RequestParam注解主要有哪些参数:
 *  
 *  value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
 *  required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
 *  defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。
 */
import java.util.Arrays;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class TestRequestParam {

	/**
	 * @RequestParam("userid") String id :表示将页面参数中,
	 * 变量名为userid的值给获取,并赋值给id,即方法中的参数名
	 * 
	 * @RequestParam String id :表示将页面参数中,
	 * 变量名为id的值给获取,并赋值给方法中的id这个参数名
	 */
	@RequestMapping("/add0")
	public String test1(@RequestParam String id){
		System.out.println("userid:   "+id);
		return "sus.jsp"; 
	}
	
	/**
	 * @RequestParam(value="userid",defaultValue="wh") String uid
	 * 表示没有将变量名为userid的进行传参,则uid为默认值wh,只要有userid变量名,
	 * 都会认为,进行了传参,则defaultValue无效
	 */
	@RequestMapping("/add1")
	public String test2(@RequestParam(value="userid",defaultValue="wh") String uid){
		System.out.println("userid:"+uid);
		return "sus.jsp"; 
	}
	
	/**
	 * @RequestParam String[] hobby
	 * 表示将页面中多个变量名同为hobby的值,传入到hobby参数中
	 */	
	@RequestMapping("/add3")
	public String test3(@RequestParam String[] hobby){
		System.out.println("hobby:"+Arrays.toString(hobby));
		return "sus.jsp"; 
	}
	
	/**
	 * method=RequestMethod.POST :表示提交请求必须是post级别的方式
	 * 必须是add.action,且必须是post请求
	 */
	@RequestMapping(value="/add4",method=RequestMethod.POST)
	public String test12(@RequestParam String userid){
		System.out.println("userid:   "+userid);
		return "sus.jsp"; 
	}
	
	/**
	 * ???????????????????????
	 * 一直未成功,@RequestParam未能接受对象参数
	 * 目前已知的接受对象参数的,有不加注解的对象参数,和加注解为@ModelAttribute来接受对象参数
	 */
	@RequestMapping(value="/add5")
	public String test12(@RequestParam User user){
		System.out.println("User:"+user);
		return "sus.jsp"; 
	}
	
	/**
	 * @RequestMapping(value="/add6",params="userid")
	 * params作用:
	 * params="uid"表示,请求方法中必须带uid这个参数变量名
	 * params="!uid"表示,请求方法中不能带uid这个参数变量名
	 * params="uid!=10"表示,请求方法中,uid的值不能为10
	 * params={"uid=10","uname"}表示,请求方法中uid为10,且必须有uname这个参数变量
	 * 
	 * No matching handler method found for servlet request: path '/add6.action', 
	 * method 'POST', parameters map['userid1'
	 */
	@RequestMapping(value="/add6",params="userid")
	public String test13(@RequestParam(value="userid",defaultValue="wh") String id){
		System.out.println("userid:   "+id);
		return "sus.jsp"; 
	}
	
	/**
	 * @RequestParam(value="userid",required=false)
	 * required=false表示请求方法中不一定有参数变量名为userid的这个变量
	 */
	@RequestMapping(value="/add7")
	public String test7(@RequestParam(value="userid",defaultValue="wh",required=false) String id){
		System.out.println("userid:   "+id);
		return "sus.jsp"; 
	}
	
	
}

  

原文地址:https://www.cnblogs.com/1020182600HENG/p/6910629.html