欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC 页面传递参数到controller的五种方式

程序员文章站 2022-07-15 11:11:50
...

五种绑定从前台传到controller层的传参方式:

一:直接将请求参数名作为Controller中方法的形参

public String login (String username,String password)
也就是直接把前台的页面中你想要获取过来的那个对应的name给当做参数传进来,Spring会自动去寻找

二:使用@RequestParam 绑定请求参数参数值(推荐使用)

public String login(RequestParam (“username”) String name,Model model) :
这中使用@RequestParam 注解的话,括号里面引号引主的话,是需要和前台你想绑定的那个参数名保持一致的,而String name 这个参数你可以随便起名

三:用注解@RequestMapping接收参数的方法(推荐使用)

@RequestMapping(value=”/login/{username}/{password}”)
public String login(@PathVariable(“username”) String name,@PathVariable(“password”) String name)

上面的 @RequestMapping(value=”/login/{username}/{password}”) 是以注解的方式写在方法上的。注解上的usernname和 password 必须好页面上value 相同,上面花括号{} 扩主的就相当于是一个占位符
而且这个和@requestParam不同之处在于,这个是从前台的静态界面中去拿到你想要的参数名并去到相对应的value值
但是使用@PathVariable这个注解,他是从请求路径中去拿到你想要的参数

四:使用Pojo对象(就是封装的类,类中封装的字段作为参数)绑定请求参数值,原理是利用Set的页面反射机制找到User对象中的属性

举例:@ReauestMapping(value=/login”)

public String login(User user){

就是把封装的一个类当成一个参数放在方法中,封装类中的属性就是就是参数。用的时候通过这个POJO类型的实体可以去拿到他的所有的属性

五:使用原生的Servlet API 作为Controller 方法的参数

public String login(HttpServletRequest request)
{
String usernma=Request.getParameter(“username”);
}

这个就是使用使用HttpServletRequest 请求页面参数的方式获取从页面传过来的参数,然后重新再去保存到一个新的变量中,便于controller中去使用