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

发布于 2024-09-12 23:10:40 字数 864 浏览 20 评论 0原文

我已将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甲如呢乙后呢 2024-09-19 23:10:40

在 getter 声明中,是否声明了 HashMap 来包含适当的类型(即 HashMap),或者只是将其作为“HashMap”?据我了解,如果您没有在 getter 签名中指定类型,则返回的对象将被评估为字符串。


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

添加一行,就像

Element-lastEntities=com.yourcompany.WhateverObject

我不确定如何处理子元素一样,无论您是否必须指定 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

Element-lastEntities=com.yourcompany.WhateverObject

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文