jsp页面的post请求,后台进行接收:
@RequestMapping("/userLogin")
public String login(
// 接收的post传送数据请求
@RequestParam("userName")
String userName,
@RequestParam("userPwd")
String userPwd){
System.out.println(userName+","+userPwd);
User userLogin = userService.doLogin(userName, userPwd);
if(userLogin!=null){
return "success";
}else{
return "login";
}
jsp页面的get请求,后台进行接收:
@RequestMapping("/color")
public ModelAndView showColor(
// 这个位置的@RequestParam 后面是否需要添加参数,取决于参数名是否与get请求中的名称一致,一致则可以省略,反之,则需要添加名称进行校正
@RequestParam
String color,
@RequestParam
int id
){
/*ModelAndView mv = new ModelAndView();
mv.setViewName("color");
等同于下面的方法:
*/
ModelAndView mv = new ModelAndView("color");
System.out.println("进入color后台!");
System.out.println("color:"+color+",id:"+id);
// 这个位置将接受的参数进行传递至jsp页面中
mv.addObject("color",color);
mv.addObject("id", id);
return mv;
}
tips:从上面的结构来看后台在处理get post请求的时候,处理的方法时候一样的,平时工作时候也是可以只存一个方法的.
但是也是有例外的,如果非要区分两种请求的方式,可以在requestmapping后面增加属性:
@RequestMapping属性:
@RequestMapping(value="/color",method=RequestMethod.GET 用来区分get post请求,params={"color","id"} 规定需要哪些参数)
params 属性一般是不需要进行加的,加载之后需要注意与下文的 @RequestParam 注解属性 的冲突性.
参考: springMVC请求注解@RequestMapping各个属性值 - 若谷先生 - 博客园
@RequestParam 注释属性:
@RequestParam(value="color",required=false,defaultValue="")
默认情况下只有一个参数的时候value名可以省略,
required属性是指该参数能否为空,如果为空,则为null,此要求参数类型必须为包装类型,否则报错
defaultvalue属性则为默认值属性,在没有参数值的情况下使用默认值
后台在响应页面时,可以通过modelandview / map / model(推荐) / httpsession,需要注意的是每个部分的作用范围不同
重定向的时候作用域不够的将会出现参数丢失的现象