java如何访问jsp页面中添加的没有属性名的ModelAndView对象
我在看春季MVC教程时遇到了ModelAndView
我的JSP视图如下所示
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
<head>
<title>Spring MVC </title>
</head>
<body>
<h2>Submitted Student Information</h2>
<table>
<tr>
<td>Name</td>
<td>${student.getName()}</td>
</tr>
<tr>
<td>Age</td>
<td>${student.getAge()}</td>
</tr>
<tr>
<td>ID</td>
<td>${student.getBranch()}</td>
</tr>
</table>
</body>
</html>
当我在控制器中设置属性名和属性值时,它起作用了,如下所示
ModelAndView mv = new ModelAndView();
mv.setViewName("result");
Student student = new Student("arun2", "CSE", 22);
mv.addObject("student",student);
return mv;
然后我遇到了另一个重载方法ModelAndView.addObject(Object attributeValue)
,我尝试只设置属性值mv.addObject(student);
,但这次它不会在浏览器中显示学生详细信息
我的问题是:
- 是否可以像我第二次
mv.addObject(student);
那样通过设置属性值在JSP中访问这些值李> - 如果是,怎么做?如果不是,为什么我们有这样的重载方法?如果无法在视图(JSP)中访问,为什么只需要设置值李>
我浏览了javadocs,但没有找到任何能让我理解的东西
# 1 楼答案
是的,您可以这样做并访问参数,但需要注意
在ModelAndView检查addObject的API,它将显示如下方法:
然后,让我们看看ModelMap.addAttribute(Object)
它使用generated name显示,生成名称的定义如下所示:
因此,如果您只想使用
mv.addObject(student)
方法,可以访问jsp页面中的数据,如下所示:如果对象是
Group
类,那么可以通过${group.name}
获取值请注意,模型和视图是来自组织的。springframework。网状物servlet。ModelAndView
此外,我建议您使用EL Expressions直接访问jsp页面中的数据