0

我正在从事一个涉及从 Struts 1 迁移到 Struts 2 版本的项目。在一个jsp中,我有迭代器

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

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

在迭代器内部,我包含了一个使用jsp:include.

<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'是s:iterator父jsp中父的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 中,这是使用嵌套根标签实现的。

4

0 回答 0