如何将一个jsp的s:iterator var引用到struts2中的另一个jsp中

时间:2014-10-13 10:43:45

标签: jsp struts2 jspinclude struts-tags

我正在开发一个涉及从Struts 1迁移到Struts 2版本的项目。在一个jsp中,我将迭代器作为

<s:iterator var="each_part" value="#request.rule.parts" status="status">

其中'rule'是带有arraylist'parts'的POJO(也是包含POJO的列表)。

在迭代器中,我使用jsp:include包含一个jsp。

<s:iterator var="each_part" value="#request.rule.parts" status="eachpart">
    <jsp:include page="/jsp/edit_rule_part.jsp">
        <jsp:param name="id" value="<%=id%>" /> 
    </jsp:include>

在包含的jsp中,即edit_rule_part.jsp,我还有一个迭代器标记,

<s:iterator var="cond" value="#request.rule.parts.conditions">

但这不起作用。我也尝试过使用

<s:iterator var="cond" value="#each_part.conditions">

其中'each_part'是父jsp中父s:iterator的id,但它没有用。

所以结构看起来像这样

JSP1
    -s:iterator (id = 'each_part')
    -jsp:include
    -JSP2
         -s:iterator (id = 'cond')

所以问题是JSP2中的'cond'迭代器想要在JSP1中引用'each_part'迭代器。

如何在另一个jsp文件中的另一个迭代器变量中访问变量'each_part',它是迭代器类型?

通常我们在子迭代器中使用value =#.list引用父迭代器,但在这种情况下,两个迭代器都在不同的jsps上。

早期在struts1中,这是使用嵌套根标记实现的。

0 个答案:

没有答案