首先,我使用struts2,java和javascript来完成我的工作。我已将问题概述如下。
我的页面上有以下表格 -
___________________________
checkbox | phone | Name
---------------------------
[] | 123-456 | abcde
[] | 234-567 | testname
____________________________
(这是一个大纲,但留在我身边)
该表的代码如下:
<s:if test="reportFilter.huntGroups!=null && reportFilter.huntGroups.size()>0">
<s:iterator var="huntGroupVO" value="reportFilter.huntGroups" status="huntGroupKey">
<tr <s:if test="#huntGroupKey.odd">class="oddRows"</s:if>>
<td width="40px"><s:checkbox id="specHg_checkbox_%{#huntGroupKey.index}" name="reportFilter.selectedHuntGroups" fieldValue="%{#huntGroupVO.phoneNumber}" value="%{reportFilter.selectedHuntGroups!=null && reportFilter.selectedHuntGroups.contains(#huntGroupVO.phoneNumber)?true:false}" theme="simple"></s:checkbox></td>
<td>
<s:if test="#huntGroupVO.phoneNumber.length()>0">
<s:property value="#huntGroupVO.phoneNumber"/>
</s:if>
<s:else>
<s:property value="#huntGroupVO.userGroupId"/>
</s:else>
</td>
<td class="hntName"><s:property value="#huntGroupVO.name"></s:property></td>
</tr>
</s:iterator>
</s:if>
很明显,当我勾选复选框时,我将电话号码作为值传递。 问题是,我也想传递这个名字。
我知道我们可以使用连字符这样的电话号码传递它。
假设我有另一个变量ArrayList<String> hiddenName
,我想填充与此变量中勾选复选框对应的名称。 (我正在考虑通过s:hidden
参数)
如果听起来有些混乱,我道歉,但请帮忙!
答案 0 :(得分:0)
显然,您只能在任何给定的表单字段中传递单个值。
您有许多选项,从简单使用字符串并将其拆分为两个值,通过中间传递ID并在Java中检索适当的值,到复杂自定义类型转换。
哪个最有意义取决于您的数据位置, 您的数据等等。
无关,但我发现JSP很难阅读。我会重构很多。以下是未经测试的,但更接近于我在代码审查后的预期。
<s:if test="reportFilter.showGroups">
<s:iterator value="reportFilter.huntGroups" status="status">
<tr>
<td>
<s:checkbox id="specHg_checkbox_%{#status.index}" theme="simple"
name="reportFilter.selectedHuntGroups"
fieldValue="phoneNumber"
value="%{reportFilter.hasNumber(phoneNumber)}" />
</td>
<td>
<s:set var="num" value="${phoneNumber.length() > 0 ? phoneNumber : userGroupId" />
<s:property value="#num"/>
</td>
<td class="hntName"><s:property value="name"/></td>
</tr>
</s:iterator>
</s:if>
注意事项: