Struts 1.x 我有一排单选按钮和2个不同的项目,具有不同的属性。这将创建2组不同的输入单选按钮。一次使用name =“item_t1”,另一次使用name =“item_t2”。 然后不将它们组合在一起。我怎样才能将它们组合在一起。我知道单选按钮按名称分组,但在这种情况下,名称具有不同的上下文。
<logic:iterate id="item" name="searchResults" property="searchResultsList">
<logic:notEmpty name="item" property="itemId_type1" >
<bean:define id="itemId_t1" name="item" property="itemId_type1"/>
<tr>
<td valign="middle">
<html:radio property="selectedItemId_t1" value="<%=itemId_t1%>"/>
</td>
</tr>
</logic:notEmpty>
<logic:notEmpty name="item" property="itemId_type2" >
<bean:define id="itemId_t2" name="item" property="itemId_type2"/>
<tr>
<td valign="middle">
<html:radio property="selectedItemId_t2" value="<%=itemId_t2%>"/>
</td>
</tr>
</logic:notEmpty>
</logic:iterate>
由于
答案 0 :(得分:1)
在Struts 1.x中,具有相同属性的元素将被分组。因此,您有两个组的原因是您有一组链接到'selectedItemId_t1'属性的单选按钮,另一组链接到'selectedItemId_t2'属性。
您需要将两个集合(t1和t2)链接到表单中的相同属性(例如,属性selectedItemId),然后,如果您需要通过解析该值来区分哪个集合执行此操作。例如,您可以将值设置为“t1&lt;%= itemId_t2%&gt;”和“t2&lt;%= itemId_t2%&gt;”并在您的selectedItemId setter中解析该值以取消前2个字符(给出它们是t1还是t2)。
答案 1 :(得分:0)
最后,我确实找到了一种jsp级别的方法,而不更改Form。我使用标准输入类型。并将字段设置为隐藏属性。我将onClick设置为单选按钮以分别设置字段。
<html:hidden property="itemId_t1" styleId="itemId_t1"/>
<html:hidden property="itemId_t2" styleId="itemId_t2"/>
function setSelectedItemId_t1(item1Id)
{
getElementById("itemId_t1").value = item1Id
getElementById("itemId_t2").value = null
}
function setSelectedItemId_t2(item2Id)
{
getElementById("itemId_t2").value = item2Id;
getElementById("itemId_t1").value = null
}
<logic:iterate id="item" name="searchResults" property="searchResultsList">
<logic:notEmpty name="item" property="itemId_type1" >
<bean:define id="itemId_t1" name="item" property="itemId_type1"/>
<tr>
<td valign="middle">
<input type="radio" name="sameItem" value="<%=itemId_t1%>" onclick="setSelectedItemId_t1(value)" />
</td>
</tr>
</logic:notEmpty>
<logic:notEmpty name="item" property="itemId_type2" >
<bean:define id="itemId_t2" name="item" property="itemId_type2"/>
<tr>
<td valign="middle">
<input type="radio" name="sameItem" value="<%=itemId_t2%>" onclick="setSelectedItemId_t2(value)" />
</td>
</tr>
</logic:notEmpty>
</logic:iterate>
这似乎是最好的方法。