我讨厌那些糟糕的文件...我在谷歌上搜索基本的东西是如何工作的... ...好吧,这是我的问题:
我有一个在jsp中迭代的对象列表...在每次迭代中我想插入一个" sub-jsp"并将当前对象传递给此jsp ....
tiles-definition :(版本3.0.5)
<definition name="projectAdmin/execAproject" extends="defaultTemplate">
<put-attribute name="title" value="Projekt-Design" />
<put-attribute name="body" >
<definition template="/WEB-INF/projectAdmin/execAproject.jsp">
<put-attribute cascade="true" name="subCustomItem_form" value="/WEB-INF/projectAdmin/subCustomItem_form.jsp" />
</definition>
</put-attribute>
</definition>
execAproject.jsp
<c:forEach items="${items}" var="item" varStatus="theCount">
<tiles:insertAttribute name="subCustomItem_form" >
<tiles:putAttribute name="super_name" value="bla" />
</tiles:insertAttribute>
</c:forEach>
subCustomItem_form.jsp
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<div class="custom_item_form">
Custom-Item ${super_name}
</div>
正如您所看到的,我迭代了项目列表......并且在每个迭代步骤中,&#34; subCustomItem_form.jsp&#34;是&#34;包括&#34;。我还尝试传递变量/参数&#34; super_name&#34;但它没有用。
问题
问题是,变量&#34; super_name&#34;永远不会显示在&#34; subCustomItem_form.jsp&#34;中。我没有任何错误或调试消息或类似的东西。 jsp&#34; subCustomItem_form.jsp&#34;显示,但不显示变量。
问题
如何传递变量?在这种情况下变量&#34; super_name&#34;。 (后来我想传递item-object。
感谢您的帮助!
修改 我解决了一下这个问题...好吧,现在我能够访问变量&#34; super_name&#34;在jsp&#34; subCustomItem_form.jsp&#34;中。因此我只改变了访问该变量的方式:
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<div class="custom_item_form">
Custom-Item <tiles:getAsString name="super_name"/>
</div>
如果我正确理解了问题/解决方案,那么我的错误就是我在&#34; jsp&#34; -context或pagecontext中有一个变量,但不是作为JSTL变量...但是那时我做一些像 的事情我改变了#34;从jsp到JSTL的变量 - &#34; context&#34; ...所以我必须以JSTL方式访问变量...我知道我的描述不是很好,但我希望你能理解我...通过这种方式,我能够传递一个字符串变量。但我仍然无法通过或访问某个对象。
现在的问题/问题 如何以这种方式传递对象并访问此对象&#34; $ {object.variable}或者我是否必须在上下文对象中编写对象?是否可以以JSTL方式访问对象?
我希望你能帮助我!
V
答案 0 :(得分:0)
解决方案
好的,我终于完成了...我试图找到一种方法,只使用JSP而不使用JSTL ....我找到了以下链接:Passing parameters to another JSP file using <jsp:include> tag 有描述的解决方案,所以我更改了“execAproject.jsp”的代码,如下所示:
<c:if test="${item.projStepItem.item_type eq 'customItem'}">
<div>
<c:set var="super_name" value="${item}" scope="request"/>
<tiles:insertAttribute name="subCustomItem_form" />
</div>
</c:if>
好的,如果我正确地解决了解决方案,那么“c:set”-line会在请求范围内设置变量,这样我就可以访问子jsp中的变量,就像后端在后端给出的变量一样一个要求。这就是为什么它对请求范围中的变量也很重要。 在我看来,所有这些的文档都相当糟糕,所以我希望能帮助任何有类似问题的人。
度过愉快的一天。
V