从struts2表单复制ArrayList中的记录

时间:2014-09-01 09:20:02

标签: java jsp struts2 struts

我需要更新从页面到数据库的对象列表。我有一个使用Struts2,tiles,Jquery,Hibernate开发的应用程序。我在struts2中使用自定义转换选项来转换自定义对象类型的集合。我曾经将集合声明为ArrayList / Hasset类型(尝试了两种声明)。从页面,我正在设置自定义对象属性的值。下面是呈现的HTML。它只有一个对象被分配到lstRulemaster(0)。我不知道复制有什么问题。

HTML

<tr class="odd">
    <td class="locked" style="width:200px">
        <input type="hidden" name="lstRulemaster(0).masterDataId" value="2" id="hierarchyUpdateForm_lstRulemaster(0)_masterDataId"/>
        <input type="hidden" name="lstRulemaster(0).masterDataCode" value="000000032334307713" id="hierarchyUpdateForm_lstRulemaster(0)_masterDataCode"/>
        <input type="hidden" name="lstRulemaster(0).masterDataRuleMapId" value="1" id="hierarchyUpdateForm_lstRulemaster(0)_masterDataRuleMapId"/>
        000000032334307713 - MONO E/S
    </td>
    <td style="width:60px"></td>
</tr>

JSP

<display:table id="data" name="lstEntities"
sort="external" uid="row" htmlId="rowid" class="tborder tborder1"
excludedParams="*" style="width:100%"
pagesize="${pageCriteria.recordsPerPage}" partialList="true"
size="${pageCriteria.totalRecords}" export="false"
requestURI="hierUpdateMDA.action">
<display:column titleKey="${entity.masterDataDesc}" class="locked"
    style="width:200px" headerClass="locked">
    <s:hidden
        name="lstRulemaster(%{#attr.row_rowNum-1}).masterDataId"
        value="%{searchAttribute.masterData.id}" />
    <s:hidden
        name="lstRulemaster(%{#attr.row_rowNum-1}).masterDataCode"
        value="%{#attr.row.mastervaluecode}" />
    <s:property value="%{#attr.row.mastervaluecode}" /> - <s:property
        value="%{#attr.row.mastervaluedescp}" />
</display:column>

我的转换属性文件内容。

KeyProperty_lstRulemaster=masterDataCode
Element_lstRulemaster=com.cotyww.bru.core.entity.master.RulesMaster
CreateIfNull_lstRulemaster=true

当我在集合中打印对象的属性时,它有重复。集合大小本身使页面中可用的记录加倍。价值也在重复。

1 个答案:

答案 0 :(得分:1)

当我将语法从lstRulemaster(%{#attr.row_rowNum-1}).%{referenceColumn}更改为lstRulemaster[%{#attr.row_rowNum-1}].%{referenceColumn}时,问题得到了解决。我不确定什么是真正的问题。关于什么是问题的任何想法?