Java 在Struts2中访问映射键值

Java 在Struts2中访问映射键值,java,forms,struts2,Java,Forms,Struts2,我在数据库中有一个变量映射,它将被返回,我想在网页上显示详细信息,前端是struts2。 我试过这个 <html:iterator value="fields" id="field"> <html:textfield name="#field.value" key="#field.value" label="#field.key"/> </html:iterator> 作为表单中的文本字段 如何简单地做到这一点?前缀“html”是struts2的

我在数据库中有一个变量映射,它将被返回,我想在网页上显示详细信息,前端是struts2。 我试过这个

 <html:iterator value="fields" id="field">
    <html:textfield name="#field.value" key="#field.value" label="#field.key"/> 
</html:iterator>
作为表单中的文本字段

如何简单地做到这一点?

前缀“html”是struts2的标记库

如果您使用structs2的taglib,让我们使用前缀s:

你可以这样做

迭代map的键,然后按键访问值

<s:iterator value="#someMap.keys" var="key">
   <s:textfield value="#someMap[key]" name="someMap[#key]"/>
</s:iterator>

我们不知道如何在
中实现它,因为在struts2标签libor中从未见过它

将使用简单的
标记

假设我们有
listmap
作为map

<s:iterator value="listmap" status="stat">
                    <s:iterator>
                        <tr>
                            <th><s:property value="#stat.index"/></th>
                            <td><s:property value="key"/></td>
                            <td><s:property value="value"/></td>
                        </tr>
                    </s:iterator>
                </s:iterator>


内部迭代器是上下文敏感的,它将使用推送到堆栈上的最后一个值。status属性在每次迭代中为我们提供一个IteratorStatus对象,如果我们想知道当前迭代,这很有用。

如果您有任意命名的值要发送回操作,则应该使用基于映射的表单标记。见文件


为动作中的映射提供一个getter/setter


另外,如果您使用的是Struts 2.1+,
id
属性是不推荐的;循环变量应使用
var
属性命名。

我不确定在struts2标记libi中如何没有看到它,我只是将struts2标记lib定义为html而不是s@TheresaForster您可以将前缀定义为您想要的任何内容,但是我建议您不要这样做,因为(a)并非所有S2标记都发出HTML,以及(b)真让人困惑。好吧!!但我相信这有点让人困惑,正如Dave也指出的。或者访问条目。尝试不工作确定它与属性一起工作,但不是我需要的textfield标记。好了,把ONGL加入到这个领域里去了-
<s:iterator value="listmap" status="stat">
                    <s:iterator>
                        <tr>
                            <th><s:property value="#stat.index"/></th>
                            <td><s:property value="key"/></td>
                            <td><s:property value="value"/></td>
                        </tr>
                    </s:iterator>
                </s:iterator>
<s:form ...>
  <s:iterator value="fields" var="field">
    <s:textfield name="sortingKey['%{#field.key}']" label="%{key}" value="%{value}" />
  </s:iterator>
</s:form>