【问题标题】:Struts2 JSP s:iterator inside an s:iterators:iterator 中的 Struts2 JSP s:iterator
【发布时间】:2014-05-03 17:47:44
【问题描述】:

我是 Struts 2 和 JSP 的新手。这个问题可能很愚蠢;如果是这样,请多多包涵。我在我的 Java 程序中创建了以下结构 - 我有一个由 HashMaps 组成的 ArrayList。一个示例如下:

[{Name=S S. Peter, Email=xyz@yahoo.com, Type=P/C, Location=New York}, {Name=Tom Hanks, Email=tom.hanks@gmail.com , Type=C/A, Location=null}, {Name=Carl Zeiss, Email=null, Type=C/A, Location=null}]

这里的 List 名称是 ComboMeals,HashMap 名称是 authors。

我想以表格的形式显示这些值。我在 JSP 中使用以下构造:

    <s:iterator value="comboMeals">
 <div class="Row" align="left">
     <s:iterator value="authors" var="numbers"> 
        <s:set var="authorTypeKey" value="key" />
            <div class="Cell" align="left">
                <s:if test="%{#authorTypeKey=='Type'}">
                    <p><s:textfield name="selectedTypeTxtBox" value="%{authors.Type}"></s:textfield><br>
                    <s:select list="listOfTypes" name="selectedType" value="%{authors.Type}" onchange="getSelectedType(this)"></s:select><br><br></p>
                </s:if>
                <s:elseif test="%{#authorTypeKey=='Name'}">
                    <p><s:textfield name="selectedNameTxtBox" value="%{authors.Name}"></s:textfield><br>
                    <s:select  list="listOfNames" name="selectedName" value="%{authors.Name}" onchange="getSelectedName(this)"></s:select><br><br></p>
                </s:elseif>
                <s:elseif test="%{#authorTypeKey=='Location'}">
                     <p><s:textfield  name="selectedLocationTxtBox" value="%{authors.Location}"></s:textfield><br>
                    <s:select list="listOfLocations" name="selectedLocation" value="%{authors.Location}" onchange="getSelectedLocation(this)"></s:select><br><br></p>
                </s:elseif>
                <s:elseif test="%{#authorTypeKey=='Email'}">
                     <p><s:textfield name="selectedEmailTxtBox" value="%{authors.Email}"></s:textfield><br>
                    <s:select list="listOfEmails" name="selectedEmail" value="%{authors.Email}" onchange="getSelectedEmail(this)"></s:select><br><br></p>
                </s:elseif>
            </div>
      </s:iterator>
 </div> 

--请忽略 onChange 事件的 JavaScript(这是用于 s:select)。

但它没有显示任何值。你能帮忙吗?

【问题讨论】:

    标签: jsp struts2 iterator


    【解决方案1】:

    由于您使用的是 var,因此请从中读取值,而不是从可迭代源中读取值(不指定索引):将您选择框中的所有 value="%{authors.Something}" 更改为 value="%{numbers.Something}"

    另请阅读:

    1. All the ways to read an iterated object(索引、变量、顶部)
    2. How to deal with nested Collections / Maps in Struts2(通过创建包装对象)

    P.S:为了更好的帮助,下次考虑发布您的 java 对象和声明,而不是(或除了)您的对象的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-10
      • 2015-06-02
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      相关资源
      最近更新 更多