码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC笔记(八)SpringMVC中的参数传递

时间:2017-08-24 23:57:14      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:fun   作用域   rip   package   insert   tin   jar包   作用   ice   

接收请求参数

    一、使用HttpServletRequest

    @RequestMapping("/login")
    public  String login(HttpServletRequest request){
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        return "success";
    }

  二、参数自动匹配-----SpringMVC会自动将表单参数注入到方法参数,只要和表单的name属性保持一致

   前端请求的表单

	<form action="${pageContext.request.contextPath}/getParam" method="post">
		用户名:<input type="text" name="name" >
		密码:<input type="text" name="pwd" >
		<input type="submit" value="submit">
	</form>

 Controller代码

	@RequestMapping(value="/getParam",method=RequestMethod.POST)
	public  String getParam1(String name,String pwd){
		System.out.println("用户名"+name);
		System.out.println("密码"+pwd);
		return "success";
	}

 三、bean对象的自动装箱

package com.neuedu.bean;
/* 
* 项目名称:SpringMVC-02 
* @author:wzc
* @date 创建时间:2017年8月22日 上午9:23:33
* @Description:定义学生类
* @parameter  
*   */
public class Student {
	private  String  name;
	private  String  email;
	private  int sex;
	private  Address address;
	public Student() {
		super();
	}
	public Student(String name, String email, int sex) {
		super();
		this.name = name;
		this.email = email;
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public int getSex() {
		return sex;
	}
	public void setSex(int sex) {
		this.sex = sex;
	}
	
	public Address getAddress() {
		return address;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", email=" + email + ", sex=" + sex + ", address=" + address + "]";
	}
}

 Controller代码段

	@RequestMapping("/getStudent")
	public String  getStudent(Student student){
		String name = student.getName();
		String email = student.getEmail();
		System.out.println("name:"+name);
		System.out.println("email:"+email);
		String studnetIn = student.toString();
		System.out.println(studnetIn);
		return "success";
	}

 四、  @RequestParam获取参数

 <a href="${pageContext.request.contextPath }/testUrl?id=5">走一个,测试URL</a><br>

 

     @RequestMapping(value="/testUrl",method=RequestMethod.GET)
 	public  String testURL( @RequestParam(value="id") Integer id){
 		//  service.getOrderById(id)
 		System.out.println("---------"+id);
 		return "success";
 	}

 三个默认属性:
     value:这个字段要与请求参数的name属性值一致!
     required:布尔值,默认是true,当指定为false的时候,说明这个参数不是必须的,可以不带!
     defaultValue:在我们不传值的时候,默认使用defaultValue的值,传递参数的时候,使用我们传递的参数值!

 五、@PathVariable获取URL中绑定的占位符

	<a href="${pageContext.request.contextPath}/order/1">测试get</a><br>

 

	@RequestMapping(value="/order/{id}")
	public  String getorderbyId1(@PathVariable(value="id") Integer id){
		//  service.getOrderById(id)
		System.out.println("---------"+id);
		return SUCCESS;
	}

 六、@RequestHeader:获取请求头信息

          value:这个字段要与请求参数的name属性值一致!
        required:布尔值,默认是true,当指定为false的时候,说明这个参数不是必须的,可以不带!
        defaultValue:在我们不传值的时候,默认使用defaultValue的值,传递参数的时候,使用我们传递的参数值!

 

七、MVC 的 Handler 方法可以接受的ServletAPI 类型的参数      

         HttpServletRequest
        HttpServletResponse
        HttpSession

  public String login(HttpServletRequest request,HttpServletResponse response ,HttpSession session){


}

向页面传参

一、利用setAttribute()

     使用HttpServletRequest 和 Session 

           如:request。setAttribute(“user”,new User("张三",1));

二、Spring MVC 提供了几种途径输出模型数据

  ModelAndView   ,Map  ,Model,ModelMap

    –ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据
    –Map 及 Model、ModelMap: 入参为 org.springframework.ui.Model、org.springframework.ui. ModelMap 或 java.uti.Map 时,

       处理 方法返回时,Map 中的数据会自动添加到模型中。

   @RequestMapping("/testMoudle")
     public String testMoudle(Map<String,Object> map){
         map.put("user", "张三");
         return "success"; 
     }
     @RequestMapping("/testMoudle1")
     public ModelAndView testMoudle1(){
          ModelAndView mAndView=new ModelAndView();
          mAndView.addObject("user", "李四");
          mAndView.setViewName("success");
          return mAndView;
     }
    @RequestMapping("/testMoudle2")
    public String testMoudle(ModelMap modelMap){
         modelMap.addAttribute("user", "王五");
         return "success"; 
    } 
     @RequestMapping("/testMoudle3")
     public String testMoudle2(Model model){
          model.addAttribute("user", "赵七");
          return "success";
     }

 

   无论我们的返回值是String类型还是ModelAndView类型,SpringMVC框架执行目标Handler方法之后都会将返回值解析为ModelAView;
    我们放入到Map或者Model、ModelMap中的数据都会放入ModelAndView对象中,作为MOdel使用!

  在前端页面中都可以通过作用域将参数取出来

三、SpringMVC使用JSON数据

 1.加入json的3个jar包
     jackson-annotations-2.1.5.jar
     jackson-core-2.1.5.jar
     jackson-databind-2.1.5.jar
    
 2. 编写目标方法,使其返回 JSON 对应的对象或集合
 3. 在方法上添加 @ResponseBody 注解

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
  $(function(){
	  $("#btn").click(function(){
		  var url="${pageContext.request.contextPath}/testJson";
		  var data={};
		  function callback(date){
			  for(var i= 0;i < date.length; i++){
				  alert(date[i].name);
			  }
		  }
		  $.post(url,data,callback);  
	  });
  });
</script>
</head>
<body>
  <button name="OK" id="btn">测试JSON</button>
  </body>
</html>

 

@RequestMapping(value="/testJson",method=RequestMethod.POST)
	@ResponseBody
	public List<Student>  testJSON(){
		List<Student> list=new ArrayList<>();
		list.add(new Student("张三 ", 0));
		list.add(new Student("李四 ", 1));
		list.add(new Student("王五  ", 0));
		return list;
	}

 

SpringMVC笔记(八)SpringMVC中的参数传递

标签:fun   作用域   rip   package   insert   tin   jar包   作用   ice   

原文地址:http://www.cnblogs.com/Actexpler-S/p/7425637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!