springmvc接收参数?
1.接收简单参数,在Controller的方法后面添加相应的参数列表,Controller的参数列表要和view层传的参数名一致。
2.接收对象参数,在Controller的方法后面添加相应的实体类,实体类的属性名要和view层传的参数名一致。
Controller类
package com.zhiyou100.kfs.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.zhiyou100.kfs.bean.User;
@Controller
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/login.do")
public ModelAndView login(String username,String password) {//要和view层传的参数名一致
ModelAndView mv=new ModelAndView("login");
if("张三".equals(username)&&"admin".equals(password)) {
mv.addObject("name", "欢迎"+username+"!");
}else {
mv.addObject("name", "出错了!");
}
return mv;
}
@RequestMapping("/login1.do")
public ModelAndView login1(User user) {//实体类的属性名对应要和view层传的参数名一致
ModelAndView mv=new ModelAndView("login");
if("张三".equals(user.getUsername())&&"admin".equals(user.getPassword())) {
mv.addObject("name", "欢迎"+user.getUsername()+"!");
}else {
mv.addObject("name", "出错了!");
}
return mv;
}
}
和jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
${name }
<a href="/SpringMVC/login/login.do?username=张三&&password=admin">跳转到login.do</a>
<a href="/SpringMVC/login/login1.do?username=张三&&password=admin">跳转到login1.do</a>
</body>
</html>
3.接收日期时间参数
a) 只能接受一个日期时间使用@initBinder在Controller:当接收的日期时间参数时会先经过该方法进行处理,但网页传的日期时间格式要和bider格式一样。
需要在接收日期时间参数的Controller里增加:
@InitBinder
public void initBinder(ServletRequestDataBinder binder){
//只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型,
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
b) 能接受多个日期时间参数,在实体类对应属性上使用@DateTimeFormart(pattern=”yyyy-MM-dd”)
4.接收对象中的对象的属性值(包装类:此处不是int等基本类型的包装类,而是对象里有个对象),例如User类里有个person对象(Person类有age属性,getter和setter)
a) 在页面传参数时name要是对象中的对象名点属性名(person.age)
personAge:<input type="text" name="person.age"/>
b) 在controller层正常用user对象接就能接到了。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有