MyException - 我的异常网
当前位置:我的异常网» VC/MFC » SpringMVC札记(八)SpringMVC中的参数传递

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

www.MyException.Cn  网友分享于:2013-09-19  浏览:0次
SpringMVC笔记(八)SpringMVC中的参数传递

接收请求参数

    一、使用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;
	}

 

文章评论

程序员的鄙视链
程序员的鄙视链
10个调试和排错的小建议
10个调试和排错的小建议
那些争议最大的编程观点
那些争议最大的编程观点
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
代码女神横空出世
代码女神横空出世
我的丈夫是个程序员
我的丈夫是个程序员
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
每天工作4小时的程序员
每天工作4小时的程序员
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员都该阅读的书
程序员都该阅读的书
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员应该关注的一些事儿
程序员应该关注的一些事儿
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序员必看的十大电影
程序员必看的十大电影
编程语言是女人
编程语言是女人
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
一个程序员的时间管理
一个程序员的时间管理
如何成为一名黑客
如何成为一名黑客
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
 程序员的样子
程序员的样子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
鲜为人知的编程真相
鲜为人知的编程真相
旅行,写作,编程
旅行,写作,编程
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
为什么程序员都是夜猫子
为什么程序员都是夜猫子
漫画:程序员的工作
漫画:程序员的工作
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有