spring 网络
1. spring解析URL参数的多种方式
1.1. 方式一:表单的参数写到方法形参
- 可以直接把表单的参数写到Controller的对应方法的形参中
- 目前这种方式适用于get方式提交,不适用于post方式提交
@RequestMapping("/addUser1")
public String addUser1(String username,String password) {
1.2. 方式二:HttpServletRequest
- 支持用post、get方式来进行。
@RequestMapping("/addUser2")
public String addUser2(HttpServletRequest request) {
1.3. 方式三:通过Bean来接收
- 建立一个和表单参数对应的bean,用这个bean来接受(省去get和set方法)
public class UserModel {
private String username;
private String password;
}
@RequestMapping("/addUser3")
public String addUser3(UserModel user) {
}
1.3.1. 方式四:通过@PathVariable获取路径中的参数
@RequestMapping(value="/addUser4/{username}/{password}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String password) {
1.3.2. 方式五:适用@ModeAttribute注解获得POST请求的FORM表单数据
- JSP表单部分:
<form action ="<%=request.getContextPath()%>/demo/addUser5" method="post">
用户名: <input type="text" name="username"/><br/>
密 码: <input type="password" name="password"/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
- java的Controller实现
@RequestMapping(value="/addUser5",method=RequestMethod.POST)
public String addUser5(@ModelAttribute("user") UserModel user) {
1.3.3. 方式六:用注解@RequestParam绑定参数到方法入参
- username不存在的话,可以为这个元注解,添加required的参数,设置为false
@RequestMapping(value="/addUser6",method=RequestMethod.GET)
public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
2. 参考
- Spring中解析URL参数的两种方式