8

我无法相信这么简单的事情在 Struts 2 中怎么看起来这么难。

这大约是我想要做的,因为它会在 Java 中完成。

for (Parent parent : parents){
  for (Child child: parent.getChildren()){
     System.out.println(child.getName());
  }
}

这应该转化为 Stuts 标签中接近此的内容:

<s:iterator var="parent" value="parents">
  <s:iterator var="child" value="parent.children">
     <s:property value="child.name"/>
  <s:iterator>
<s:iterator>

我假设parent.children应该类似于 ${%(#parent.children)} 但我还没有找到 ${%(# 个要使用的字符的正确组合:-)。我还可以使用指向页面的链接来解释何时使用其中的哪一个。

4

4 回答 4

13

尝试这个:

<s:iterator var="parent" value="parents">
    <s:iterator var="child" value="#parent.children">
        <s:property value="#child.name"/>
    <s:iterator>
<s:iterator>
于 2010-02-25T20:32:09.033 回答
4

这个对我有用:

<s:iterator value="parents">
    <s:iterator value="children">
        <s:property value="name" />
    </s:iterator>
</s:iterator>
于 2010-02-26T10:27:39.037 回答
1

JSP 代码如下所示:

    <s:form action="saveaction" >
        <s:iterator value="lstBean" id="lstBean" status="outerStat">
            <s:textfield value="%{name}" name="lstBean[%{#outerStat.index}].name"/>
            <s:textfield value="%{amt}" name="lstBean[%{#outerStat.index}].amt"/>
            <s:textfield value="%{id}" name="lstBean[%{#outerStat.index}].id"/>
            <s:iterator value="%{lstString}" status="myStat">
                <s:textfield name="lstBean[%{#outerStat.index}].lstString[%{#myStat.index}]"/>
            </s:iterator>
        </s:iterator>
        <s:submit value="Click me to submit lstBean"/>
    </s:form>

以下是 JSP 中使用 List 的 bean(XBean):

public class XBean
{    
private ArrayList<String> lstString=new ArrayList<String>();
private String name;
private Double amt;
private Integer id;
//Getters and setters of fields
}

现在,您可以在提交操作(保存操作)中简单地使用带有 setter 的字段 lstBean,嘿,您已经完成了。

于 2011-02-16T13:07:12.457 回答
0

对于 Struts 2.3.x,您可以使用此示例,从http://struts.apache.org/release/2.3.x/docs/iterator-tag-examples.html提取

在此示例中,“国家”是国家/地区对象的列表,每个国家/地区对象都有一个名称和一个城市列表。每个城市都有一个名字。

<s:iterator value="countries">
    <s:iterator value="cities">
        <s:property value="name"/>, <s:property value="[1].name"/><br>
    </s:iterator>
</s:iterator>

它们指的是堆栈上的特定位置:'[1]'。栈顶,位置 0,包含当前城市,由内部迭代器推入;位置 1 包含当前国家,由外部迭代器推到那里。

于 2014-10-23T16:05:10.500 回答