我正在尝试为struts中的选择框动态填充一些optgroups。目的是将地图中任何驱动选择框控件的重复名称分组到他们自己的选项组中。
例如,我有3家公司:
在我的数据库中,我有多个位置:
我只想让它们在我的下拉列表中使用选项组进行分组(仅当有多个地址时,否则我希望它们在下拉列表中正常显示) - 这可能与我找到的这个例子类似。我想做一些类似于下面的事情,但是optgroup必须以某种方式链接到选项。:
<s:select id="regionstate" name="state" list="stateMap">
<s:iterator value="region" status="regionStatus">
<optgroup label="<s:property value="name" />">
<s:iterator value="states" status="stateStatus">
<option value="<s:property value="id" />"><s:property value="name" /></option>
</s:iterator>
</optgroup>
</s:iterator>
我实际上并没有实现上面的代码,但我认为与我的问题相关的示例问题是看起来区域和状态没有链接。
我有: - 我的重复项(名称)列表,它将填充optgroup的label属性,以及 - 包含每个项目的适当值(下拉值)和每个项目的地址(显示给用户)的地图
我不确定我想要达到的目标是否可行,但看起来它应该是非常简单的。我希望我只需要一点方向,而且我只缺少一小部分谜题。
提前感谢您的帮助!
它应该看起来像这样,我想:
很抱歉所有与编辑混淆。 我理解它的方式,选择框内的选择组将是重复名称的列表(麦当劳,家得宝,沃尔玛)。每个optgroup中的每个选项都与该特定名称相关联。因此,例如,麦当劳的optgroup可能有多个与之相关的选项。
好吧,假设我有公司课。该类有3个属性:id,name和address。以下是我期望渲染的选择框的外观:
<select name="companies">
<option value="1a">Company 1</option>
<option value="2a">Company 2</option>
<optgroup label="Company 3">
<option value="3a">38373 Street Ave</option>
<option value="3b">38393 Town St</option>
</optgroup>
<optgroup label="Company 4">
<option value="4a">990300 Street Ave</option>
<option value="4b">99093 Town St</option>
<option value="4c">99093 Town St</option>
</optgroup>
</select>
也许我传达的问题是我需要处理3位数据,所以我不确定只使用地图就可以了。就像我说的那样,很可能我错过了这个谜题,或者我假设的设计存在缺陷。
答案 0 :(得分:3)
试试以下代码可能对您有帮助。
<s:select id="regionstate" name="state" list="stateMap">
<s:iterator value="region" status="regionStatus">
<optgroup label="%{name}">
<s:iterator value="states" status="stateStatus">
<option value="%{id}"> %{name}</option>
</s:iterator>
</optgroup>
</s:iterator>
</s:select>