struts2 中的映射属性返回字符串数组而不是 Integer 对象
我已将 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>
I have assigned Hahmap to the dropdowns.. each dropdown laues will be set into hashmap. when i try to get these values i am geeting values as string array instead of one object.so, i am not able to repopulate values if validation fails.
below is the code i am using to populate the values.
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 getter 声明中,是否声明了 HashMap 来包含适当的类型(即 HashMap),或者只是将其作为“HashMap”?据我了解,如果您没有在 getter 签名中指定类型,则返回的对象将被评估为字符串。
编辑:如果您使用的是 JDK 1.5 以下版本,您可以在类路径中为适当的操作类创建一个
'ClassName'-conversion.properties
文件(或者可能为 actComments,不确定)。这将允许您告诉类型转换代码它是什么类型。添加一行,就像
我不确定如何处理子元素一样,无论您是否必须指定 Element-actComments.lstEntities 还是其他内容。我会尝试摆弄它。
In your getter declaration, do you have the HashMap declared to contain the appropriate types (i.e. HashMap< String, Integer >), or do you just have it as 'HashMap'? It's my understanding that if you don't specify the types in the getter signature, the returned objects will be evaluated as strings.
Edit: if you're using below JDK 1.5, you can make a
'ClassName'-conversion.properties
file in your classpath for the appropriate action class (or maybe for the actComments, not sure). That'll allow you to tell the type conversion code what type it is.Add a line like
I'm not sure how you do subelements, whether you'd have to specify Element-actComments.lstEntities or something else. I'd try fiddling with that.