映射属性在struts2中返回字符串数组而不是Integer对象

时间:2010-08-04 06:09:53

标签: struts2

我已将Hahmap分配给下拉列表..每个下拉列表将被设置为hashmap。当我尝试获取这些值时,我将值作为字符串数组而不是一个对象。所以,如果验证失败,我无法重新填充值。 下面是我用来填充值的代码。

<s:iterator value="#actComments.lstEntities">
            <tr>
                <td width="15%" align="left"><s:textfield name="propType"
                    readonly="true" value="%{#attr.propertyTypeName}"
                    cssStyle="width:80px;font-size:11px;" /></td>
                <td width="85%" align="left"><s:select
                    name="hmMapComment[%{#attr.propertyTypeId}]"
                    cssStyle="font-size:11px;width:457px;margin-bottom:3px"
                    headerKey="0" headerValue="-- Select Comment --" list="comments"
                    listKey="commentId" listValue="commentText" /></td>
            </tr>
        </s:iterator>

1 个答案:

答案 0 :(得分:0)

在你的getter声明中,你是否声明HashMap包含适当的类型(即HashMap&lt; String,Integer&gt;),或者你只是将它作为'HashMap'?我的理解是,如果你没有在getter签名中指定类型,返回的对象将被评估为字符串。


编辑:如果您使用的是JDK 1.5以下,您可以在类路径中为相应的操作类创建一个'ClassName'-conversion.properties文件(或者对于actComments,可能不确定)。那将允许您告诉类型转换代码它是什么类型。

添加一行

Element-lastEntities=com.yourcompany.WhateverObject

我不确定你是如何做子元素的,你是否必须指定Element-actComments.lstEntities或其他东西。我试着摆弄它。