gpt4 book ai didi

java - 如何访问jsp页面中添加的没有属性名称的ModelAndView对象

转载 作者:行者123 更新时间:2023-11-30 06:14:30 25 4
gpt4 key购买 nike

我正在学习 Spring MVC 教程并遇到了 ModelAndView。

我的 JSP View 如下所示,

<%@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>

当我在 Controller 中设置属性名称和属性值时,它起作用了,如下所示,

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); 但这一次它没有不在浏览器中显示学生详细信息。

我的问题:

  1. 是否可以像我第二次那样通过设置属性值来访问 JSP 中的这些值 mv.addObject(student);
  2. 如果是,如何?如果不是,为什么我们有这样的重载方法?如果我们无法在 View (JSP)中访问它,为什么我们只需要设置值?

我浏览了javadocs,但没有找到任何可以让我理解的内容。

最佳答案

是的,您可以这样做并访问参数,但需要注意一些。

检查 addObject 的 API ModelAndView ,它会显示方法如下: enter image description here

然后我们看一下ModelMap.addAttribute(Object)的定义 enter image description here

它显示使用 generated name 生成名称的定义如下: enter image description here

所以,如果您只想使用mv.addObject(student)方法,您可以按如下方式访问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.name}</td>
</tr>
<tr>
<td>Age</td>
<td>${student.age}</td>
</tr>
<tr>
<td>ID</td>
<td>${student.branch}</td>
</tr>
</table>
</body>
</html>

如果对象是Group类,那么您可以通过${group.name}获取值

并注意ModelAndView来自org.springframework.web.servlet.ModelAndView

另外,我建议您使用 EL Expressions 直接访问jsp页面中的数据。

关于java - 如何访问jsp页面中添加的没有属性名称的ModelAndView对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com