Struts2 <s:select list =“”>无法动态工作</s:select>

时间:2013-05-22 14:08:53

标签: java jsp struts2

我正在使用Struts2。

<s:iterator value="empReportFields" var="empReportField" 
    <s:select name="%{#empReportField.fieldName}" list="%{#empReportField.listName}" listKey="id" listValue="name" cssClass="search" headerValue="All" headerKey="All" />                                           

    <s:property value="#empReportField.listName" />
    // Here it is displaying proper list name                   
</s:iterator>

我从我的数据库中取出这些数据。现在我在选择框(<s:select list="<ListName>" />)中显示特定列表,该列表存储在我的表(数据库)列中。

通常它会像。

一样运行
<s:select name="emp" list="locationList" 
          listKey="id" listValue="name" 
          headerValue="All" headerKey="All" />

它会很好用。

但我发现简单的选择框中没有列表值。那么实际问题是什么?

简而言之,我想动态调用列表。

2 个答案:

答案 0 :(得分:1)

s:select标签itslef有一个list属性,你可以在其中直接给出要填充下拉列表的列表名称(在动作类中)。您不需要使用迭代器将值打包到s:select下拉列表中。

试试这个:

<s:select label="Select from here" 
        headerKey="-1" headerValue="Select"
        list="listNameHere" 
        name="feildNameHere" />

这里'listNameHere'是动作层中的列表,'feildNameHere'是动作类中的实例变量,它接收用户选择的值。

答案 1 :(得分:0)

根据我的理解,您希望根据迭代器值动态加载<s:select list

如果是这样,只需像这样<s:select list那样使用<s:select list="#empReportField.listName"

<s:iterator value="empReportFields"是列表,而列表内还有另一个名为listName的列表或地图。