Java 如何将复杂对象从控制器传递到视图(jsp)
我需要将一个复杂对象从SpringMVC控制器传递到视图,并能够使用它的所有属性。对象本身具有其他类对象的列表,而这些对象具有其他类对象的列表,依此类推。我正在尝试从中呈现将用作treeView的多级无序列表 我能这样做吗?怎么做 顺便说一句,我已经试着“定期”通过了,但我Java 如何将复杂对象从控制器传递到视图(jsp),java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我需要将一个复杂对象从SpringMVC控制器传递到视图,并能够使用它的所有属性。对象本身具有其他类对象的列表,而这些对象具有其他类对象的列表,依此类推。我正在尝试从中呈现将用作treeView的多级无序列表 我能这样做吗?怎么做 顺便说一句,我已经试着“定期”通过了,但我 org.apache.jasper.el.JspPropertyNotFoundException: /WEB-INF/pages/index.jsp(29,8) '${rootAsObject.JWSs}' Propert
org.apache.jasper.el.JspPropertyNotFoundException: /WEB-INF/pages/index.jsp(29,8) '${rootAsObject.JWSs}' Property 'JWSs' not found on type com.model.Root
我的控制器
@RequestMapping(method = RequestMethod.GET)
public String someFunction(ModelMap model,HttpServletRequest request) {
model.addAttribute("rootAsAttribute", this.GenerateTreeView(appconfigProperties));
model.addObject("rootAsObject", this.GenerateTreeView(appconfigProperties));
return "index";
}
My index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div style="float: left; width: 20%; height: 100%; overflow-x: scroll">
<ul>
<c:forEach items="${rootAsObject.JWSs}" var="jws">
<li>${jws.ActualFile.getName()}</li>
</c:forEach>
</ul>
</div>
<div style="float: left; width: 80%" id="thePage">
<iframe id="frame1" name="frame1" scrolling="auto" runat="server" style="float: left; width: 100%; height: 100%;"
frameborder="0" scrolling="no"></iframe>
</div>
</body>
</html>
- ${jws.ActualFile.getName()}
您可以在从控制器返回视图时向模型添加属性,并使用JSTL表达式访问此属性引用的对象。将复杂视图模型传递给控制器的最佳方法是使用自定义模型绑定器。当数据从视图发送到控制器时,MVC默认模型绑定器用于说明如何将数据值绑定到视图模型。通过创建自定义模型绑定器,可以控制如何将值绑定到视图模型
public class Xxx implements Serializable {
@Getter @Setter
private String someField;
// constructor, etc.
}
${someName.someProperty}
传递复杂对象的方式与传递简单对象的方式相同:将其存储在模型中。我想我已经尝试过了。我刚刚编辑了我的问题…错误消息告诉您问题是什么:JSP找到了com.model.Root类型的对象。但它没有名为“JWSs”的属性。因此,问题出在com.model.Root或JSP中。不在你的控制器里。编程的第一条规则:阅读错误消息。不,不,Root拥有JWSs属性100%,我在与此相关的其他项目中使用此模型,即使在这个项目中,如果我直接从Root对象生成treeview,JWSs也存在。我希望避免在模型中生成视图,这就是我试图在.jspIf中呈现列表的原因。如果JSP告诉您它没有JWSs属性,那么它就没有JWSs属性。向我们展示模型的代码。属性,顺便说一句,以小写字符开头。所以不,它没有JWSs属性。尝试过,但我收到一条异常消息。请查看已编辑的问题。如果您试图访问对象的属性,请确保bean中有此属性,并且该bean是有效的java bean。我很抱歉回答下一个问题,但是“我该如何做”?我对SpringMVC是100%的新手,对Java也是相当陌生的。。。你有什么有用的链接吗?谢谢,我会浏览并寻找解决方案。