Springmvc03-recieveParameter
1. property
单纯的只是收到property。spring自带类型转换 提交的表单name值和方法的形参名一致才能接受,不一致不能接受,但是可以通过RequestParam(“username”)参数校正。
- index.jsp
<%@ 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>
</head>
<body>
<form action="springmvc/hello" method="post">
<input type="text" name="username"><br>
<input type="text" name="age"><br>
<input type="submit" name="提交">
</form>
</body>
</html>
- controller类
package com.caorui.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
//后端控制器
@Controller //该注解表示将当前类给spring容器管理
@RequestMapping("/springmvc")//该注解起了限定范围的作用
public class MyController {
@RequestMapping("/hello") //@RequestParam("username")参数校正
//spring自带类型转换 提交的表单name值和方法的形参名一致才能接受,不一致不能接受,但是可以通过RequestParam("username")参数校正
public ModelAndView hello(@RequestParam("username") String uname, int age) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("username", uname);
modelAndView.addObject("age", age);
modelAndView.setViewName("welcome");
return modelAndView;
}
}
2. object
如果收到对象,可以在controller的方法里传入个对象。对象的属性名和表单name值一致。
- index.jsp
<%@ 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>
</head>
<body>
<form action="springmvc/hello" method="post">
用户名:<input type="text" name="username"></br>
年龄:<input type="text" name="age"></br>
伴侣名称:<input type="text" name="partner.name"></br>
<input type="submit" value="提交"></br>
</form>
</body>
</html>
- controller类
package com.caorui.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.caorui.pojo.Star;
//后端控制器
@Controller //该注解表示将当前类给spring容器管理
@RequestMapping("/springmvc")//该注解起了限定范围的作用
public class MyController {
@RequestMapping("/hello")
public ModelAndView hello(Star star) { //创建对象接受,对象的属性名和提交表单name值一致
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("username", star.getUsername());
modelAndView.addObject("age", star.getAge());
modelAndView.addObject("partner", star.getPartner().getName());
modelAndView.setViewName("welcome");
return modelAndView;
}
}
- pojo类
package com.caorui.pojo;
public class Star {
private String username; //和表单中的name值一致,不然封装不了
private int age;
private Partner partner;
public Partner getPartner() {
return partner;
}
public void setPartner(Partner partner) {
this.partner = partner;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Star [username=" + username + ", age=" + age + ", partner=" + partner + "]";
}
}
package com.caorui.pojo;
public class Partner {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Partner [name=" + name + "]";
}
}