浅谈在页面中获取到ModelAndView绑定的值方法

获取ModelAndView中绑定的值是很常见的操作,在MVC框架中,ModelAndView作为控制器处理请求后返回给视图的结果,其包含有业务逻辑处理的结果、响应状态和视图(jsp、html等)等信息。下面是获取ModelAndView中绑定的值的几种方法:

获取ModelAndView中绑定的值是很常见的操作,在MVC框架中,ModelAndView作为控制器处理请求后返回给视图的结果,其包含有业务逻辑处理的结果、响应状态和视图(jsp、html等)等信息。下面是获取ModelAndView中绑定的值的几种方法:

方法一:使用EL表达式(${})获取

EL表达式是JavaEE提供的一种表达式语言,可以在JSP或HTML页面中访问服务器端的Java对象。我们可以在一个页面中通过${}拼接访问ModelAndView中的值,例如下面这个例子:

假设ModelAndView中包含了一个"username"属性

<html>
   <head>
      <title>获取ModelAndView中绑定的值示例</title>
   </head>
   <body>
      <h1>欢迎 ${username}</h1>
   </body>
</html>

这里的"${username}"就是使用EL表达式获取ModelAndView中的"username"属性的值。

方法二:使用@RequestMapping注解的方法参数获取

在Spring MVC中,我们可以通过在方法参数中添加@ModelAttribute注解,来获取到ModelAndView中绑定的值。简单的说,就是在控制器方法签名中提供ModelAndView的变量名,Spring MVC自动将ModelAndView中绑定的数据注入到这个变量中。

示例:

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value = "/register", method = RequestMethod.GET)
    public String registerPage() {
        return "register";
    }

    @RequestMapping(value = "/register", method = RequestMethod.POST)
    public String registerUser(@Valid User user, BindingResult result, @ModelAttribute("registrationDate") Date date) {
        if (result.hasErrors()) {
            return "register";
        }

        userService.register(user);
        return "redirect:/user/login";
    }
}

这里的@ModelAttribute("registrationDate")Date date就是从ModelAndView中获取名为"registrationDate"的值,并注入到方法参数date中。

注意事项

  1. 如果ModelAndView中绑定的值是个对象,我们可以使用EL表达式获取其属性值,例如:${user.username}
  2. 如果ModelAndView中有多个值需要读取,我们可以在控制器中通过ModelAndView的方法分别获取(例如:getModelMap().get("username"))
  3. 如果使用注解的方式获取ModelAndView的值,需要注意方法参数中的变量名要与ModelAndView中的key(或属性名)保持一致。

以上是获取ModelAndView中绑定的值的一些方法,建议根据不同需求灵活使用。

本文标题为:浅谈在页面中获取到ModelAndView绑定的值方法

基础教程推荐