SpringMVC接受前台传值

控制器接受前台的值的方式

路径传值

    @RequestMapping("/login/{id}")  
    public String demo(@PathVariable Long id){  
        ...
    }  

通过@PathVariable就可以接受路径/login/{id}中的id值了。

From表单传值

先介绍模拟前台和实体类:

前台:

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

实体类:
这里定义实体类需要注意的是,对于基本数据类型的成员变量尽量声明成其对应的包装类型…

 public class User{  
  	private String name;  
  	private String pass;  
  	
  	// ... get,set方法和空构造,这里以免篇幅过长省略不写,实际需要写
}  

1.使用原生态的HttpServletRequest

     @RequestMapping("/login")  
    public String login(HttpServletRequest request){  
        String name = request.getParameter("name")  
        String pass = request.getParameter("pass")  
    }  

2.使用@RequestParam注解

     @RequestMapping("/login")  
    public String login(HttpServletRequest request,  
                                    String name,  
     @RequestParam("pass")String password) // 表单属性是pass,用变量password接收  
    {  
      // 对name,和password进行操作省略
    }  

这里前台form的name属性值分别为name和pass,所以此时与形参不匹配的只有pass,需要使用@RequestParam注解就可以将不匹配的匹配,然后注入值。

3.利用实体类

 public String login(User user)  
{  
   String name = user.getName();
   String pass = user.getPass();
}  

SpringMVC会自动将表单中的值与实体类中的属性进行匹配,自动注入形参的对象中。如果与实体类的属性不匹配的话,是传不了的。

发布了14 篇原创文章 · 获赞 15 · 访问量 520

猜你喜欢

转载自blog.csdn.net/CodingNO1/article/details/104439142