Java 在Struts2中访问映射键值
我在数据库中有一个变量映射,它将被返回,我想在网页上显示详细信息,前端是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的
<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>