我已将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>
答案 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或其他东西。我试着摆弄它。