我正在使用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" />
它会很好用。
但我发现简单的选择框中没有列表值。那么实际问题是什么?
简而言之,我想动态调用列表。
答案 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
的列表或地图。