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

阿伦·戈达

我正在阅读 spring 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);但是这次它没有在浏览器中显示学生详细信息。

我的问题:

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

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

卢库莫斯

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

ModelAndView处检查 addObject 的 API ,它将显示如下方法:在此处输入图片说明

然后我们看一下ModelMap.addAttribute(Object)的定义 在此处输入图片说明

它示出了使用一个生成的名称,定义生成的名称列示如下:在此处输入图片说明

所以,如果你只是想使用这个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 表达式直接访问您的 jsp 页面中的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何访问名称中带点的对象属性

如何访问属性名称中带有特殊字符的javascript对象的属性

Flask“属性'功能'对象中的蓝图没有属性'名称'

如何访问对象属性的名称?

具有JSP的Spring-MVC。如何从JSP页面访问单例作用域对象?

在Flask中获取“'请求'对象没有属性'名称'”

在PowerShell中添加对象属性的值,而无需按名称访问每个属性

如何使用el访问jsp中的对象存储在list中的对象的属性

页面没有在jsp中重定向

AttributeError:“模型”对象没有属性“名称”

DataFrame对象没有属性“名称”

AttributeError:“名称空间”对象没有属性

AtributeError:int对象没有属性名称

在Blaze模板中访问对象的属性名称

如何在数组中添加一些没有指定属性的对象的新属性?(JS)

在JSP中访问常量(没有scriptlet)

在没有属性名称的情况下访问jstl中的类属性

如何访问没有名称的对象内的JSON对象

Javascript如何更新嵌套对象中的所有属性名称

将@PathVariable传递到我的所有JSP页面而不将其添加到ModelAndView的最佳方法是什么?

如何在JSP页面中获取并显示MultiMap对象属性的键和对应值

如何从字典中查找没有某些必需属性的对象

对象声明中的属性名称后没有冒号,有效吗?

获取数组中具有和没有某些属性的对象的名称

Tkinter:AttributeError:NoneType对象没有属性<属性名称>

如何在 helm 模板中的属性名称中访问带有冒号的属性

如何从JavaScript代码中的ModelAndView访问变量

使用对象数组中未知属性名称访问生成的属性

如何显示没有属性名称的数据