记录spring controller从页面接收参数的几种方法

来源:互联网 发布:达内c语言视频 编辑:程序博客网 时间:2024/05/17 00:50

记录spring controller从页面接收参数的几种方法

controller根据页面中标签的name来接收参数


若使用表单来提交参数

<form method="post" action="login.action">    用户名:<input name="name"/>    密码:<input name="psw"/>    <input type="submit" value="登陆"></form>

有封装的User类及其各属性的get,set函数

public class User{  private String name;  private String psw;}
通过 @ModelAttribute获取POST请求的FORM表单数据
@RequestMapping(value="login.action",method=RequestMethod.POST) public String processSubmit(@ModelAttribute("user")User user){         System.out.println(user.getName());        System.out.println(user.getPsw());        return "helloWorld.jsp"; }
自动注入Bean属性
@RequestMapping(value="login.action",method=RequestMethod.POST) public String processSubmit(User user){         System.out.println(user.getName());        System.out.println(user.getPsw());        return "helloWorld.jsp"; }

若使用url来提交参数

1.url格式:login.action?name=username&psw=password

request.getQueryString()
@RequestMapping(value="login.action",method=RequestMethod.GET) public String processSubmit(HttpServletRequest request){         System.out.println(request.getQueryString());        //输出结果为:name=username&psw=password        return "helloWorld.jsp"; }

2.url格式:login/name/psw.action

通过@PathVariable获取路径中的参数
@RequestMapping(value="login/{username}/{password}.action",method=RequestMethod.GET) public String processSubmit(@PathVariable("username")String username,@PathVariable("password")String userPsw){         System.out.println(username);        System.out.println(userPsw);        return "helloWorld.jsp"; }

post方式和get方式都可以

上面的表单和url的第一种格式均可以下面的方法接收

HttpServletRequest接收
@RequestMapping(value="login.action") public String processSubmit(HttpServletRequest request){     String username=request.getParameter("name");    String password=request.getParameter("psw");    System.out.println("username is:"+username);    System.out.println("password is:"+password);    return "helloWorld.jsp"; }
用注解@RequestParam绑定请求参数
@RequestMapping(value="login.action") public String processSubmit(@RequestParam("name") String username,,@RequestParam("psw") String password){     System.out.println("username is:"+username);    System.out.println("password is:"+password);    return "helloWorld.jsp"; }

另外@RequestParam还可以添加别的参数

@RequestParam(value="name",required=false) String username//表示请求中可以没有名字为name的参数,如果没有默认为null
@RequestParam(value="name", required=true, defaultValue="zhou") String username//表示如果请求中没有名字为name的参数,默认值为“zhou”
原创粉丝点击