JSP/Struts2/Hibernate:通过自引用表循环
假设我们有一个名为PERSON的自引用表,它有以下列:ID,PARENT,其中PARENT是PERSON表中另一个元素的ID列的外键。当然,许多人可以有相同的父母 我在惰性抓取模式下使用Hibernate3来处理数据库。Hibernate从数据库中获取person元素,然后通过Struts2操作将其放入ValueStack中,用于结果JSP页面 现在的问题是:在JSP中,如何显示所有子元素和子元素的子元素,以此类推,就像这个person元素的族谱一样 当然,对于n+1个孩子,我可以在person.person上使用JSP/Struts2/Hibernate:通过自引用表循环,hibernate,jsp,struts2,self-reference,Hibernate,Jsp,Struts2,Self Reference,假设我们有一个名为PERSON的自引用表,它有以下列:ID,PARENT,其中PARENT是PERSON表中另一个元素的ID列的外键。当然,许多人可以有相同的父母 我在惰性抓取模式下使用Hibernate3来处理数据库。Hibernate从数据库中获取person元素,然后通过Struts2操作将其放入ValueStack中,用于结果JSP页面 现在的问题是:在JSP中,如何显示所有子元素和子元素的子元素,以此类推,就像这个person元素的族谱一样 当然,对于n+1个孩子,我可以在person
-TBW。使用JSTL和自定义标记文件,您可以非常轻松地完成这项工作。其思想是标记是递归的。请注意,WebLogic 11g的一些早期版本有一个bug,它阻止递归标记正常工作,但通常servlet容器和应用程序服务器都很好地支持这个bug person.tag 我刚刚从内存中编写了这个示例,它可能需要一些细微的调整
由于您是惰性加载,您可能希望使用视图中的Open Session模式,因为四元数提到Spring不是必需的。查看视图中的Open Session。我看过struts2关于这个的文档。一些解决方案可能要求使用Spring。谢谢!这工作做得很好!在您的示例中,只需将${person.children}更改为${value.children},一切正常。再次谢谢你,接得好!我修正了这个例子。
<%@attribute name="value" required="true" type="com.example.Person"%>
<c:forEach items="${value.children}" var="child">
display child info...
<z:person value="${child}"/>
</c:forEach>