Struts 1:如何使用表单bean设置<html:multibox>值?</html:multibox>

时间:2013-03-07 10:54:30

标签: java jsp struts

我想从表单中动态设置我的multibox的值。我正在使用<display:table />标记在表格中显示表单中的列表但是,我在表格的每一行都有checbox,我希望设置valuedisabled属性取决于列表中与表中该行对应的对象。这就是我目前正在做的事情。

<display:table  name="sessionScope.SearchForm.companyDevices" requestURI="my/action.jspa">
        <display:column>
                <html:multibox property="selectedDevices" 
value="${macAddress}" <!-- HERE -->
disabled="${isAssigned}"/> <!-- AND HERE -->
        </display:column>
        <display:column property="macAddress" title="Mac Address" />
        <display:column property="vendor" title="Vendor"/>
        <display:column property="model" title="Model"/>
        <display:column property="deviceStatus" title="Device Status" />

</display:table>

正如您所看到的,column属性使用相同的macAddress bean值,并且它成功地显示了macAddress,但是在multibox中,由于某种原因,它没有将值设置为macAddress。 disabled属性也是如此。

我似乎无法确定哪里出了问题。如何在display:table

中为多箱设置动态值

1 个答案:

答案 0 :(得分:0)

我找到了办法。我用

替换了上面的multibox标签
 <display:table  name="sessionScope.SearchForm.companyDevices" requestURI="my/action.jspa" id="device"> <!-- ID ATTRIBUTE ADDED -->

<html:multibox property="selectedDevices"><bean:write name="searchForm" property="companyDevices[${row_rowNum - 1}].macAddress" /></html:multibox>

rowNum是struts中隐式创建的变量,用于检索特定行的行号。要标识行,需要分配Id。通过在display:table中将ID设置为“设备”,我使用device_rowNum(我id属性和rowNum的组合中隐式创建的变量)获取行的特定内容与其在列表中的位置相关联的数字,以便能够检索我想要的值。