我想从JSP中填充Struts2操作的映射属性。我应该使用什么数据名称的格式?最初我对填充地图< String,String>感兴趣,但将来我会在填充Map < String,DomainClass>时感兴趣,其中DomainClass具有其自己的属性。JSP中的Struts2映射条目的字段名称
0
A
回答
3
我有一个动作,具有属性如下: -
private Map<String,String> assetProps;
...
public Map<String, String> getAssetProps() {
return assetProps;
}
public void setAssetProps(Map<String, String> assetProps) {
this.assetProps = assetProps;
}
要设置值到地图上,基本上有两个步骤。首先,OGNL不能实例化地图,因此取决于您。在我的动作,我实现了制备的接口,但如下运行前对其进行实例化“公共字符串输入()”方法 -
public class EditAction extends ActionSupport implements Preparable {
...
public void prepare() {
// just satisfying Preparable interface so we can have prepareInput()
}
public void prepareInput() throws Exception {
assetProps = new HashMap<String,String>();
}
现在,对象非空,我可以使用类似的语法以下在JSP中 -
<s:iterator value="asset.properties" var="prop">
<sjx:textfield name="%{'assetProps[\\'' +#prop.propName +'\\']'}"
value="%{#prop.propValue}"
label="%{#prop.propName}" size="25"/>
</s:iterator>
迭代器从堆栈中拉出一组对象并遍历它。重要的部分是“name =”部分,请注意双引号单引号。这样,当页面呈现时,输入元素的名称变成(例如) - assetProps ['Screen Size']。当页面被提交时,在“public void execute()”方法中,assetProps被完全填充。
2
这是另一个代码片段,它可以做类似的事情,以防万一。
<s:iterator value="storageIds" var="sids">
<s:hidden name="%{'storageIds[\\'' + key +'\\']'}" value="%{#sids.value}"/>
</s:iterator>
我的操作有一个名为Map<String,String>
storageIds
当遍历一个地图,键和值解析为Map.Entry
属性。
0
试试这个。为我完美工作
<s:iterator value="configMap" id="daa">
<s:hidden name="%{'configMap[\\'' + key +'\\']'}" value="%{#daa.value}" />
</s:iterator>
相关问题
- 1. JPA 2.0 IdClass字段名称映射
- 2. Struts2没有正确地将JSP中的文本字段映射到Action类
- 3. 如何将JSON字段名称映射到不同的对象字段名称?
- 4. 将类字段名称映射到myBatis中用于插入的列名称
- 5. 使用GSON将更改的字段名称映射到POJO
- 6. 将JSON对象映射到不同的架构字段名称
- 7. Struts2的形式来操作字段映射自动
- 8. Struts2的时间(HH:MM)映射到动作字段
- 9. 如何使用非法json字段名称重命名和重映射字段
- 10. struts2的休眠映射
- 11. Liferay + Struts2没有操作映射为操作名称默认值。
- 12. Powershell安全标识映射/ Active Directory中的名称映射
- 13. 使用JSON映射映射Hive中的列名称
- 14. 自动映射似乎不喜欢'名称'字段
- 15. 如何在Django/PyAMF和Flex之间映射字段名称?
- 16. 使用DataMapper ORM for php来映射字段名称
- 17. Struts2的/ JSP - 名称属性,它是名单列表
- 18. 如何将简单Java类的字段名映射为名称/值对序列
- 19. 将目录映射到Ant中的名称
- 20. 名称映射 - \\。\ PhysicalDrive到\\。\ SCSI
- 21. FLURL:映射属性名称
- 22. Salesforce:映射字段
- 23. 在Android中使用相同字段名称的JSONArray解析和值映射
- 24. 在Struts2中没有为名称空间/和动作名称userfiles/images /映射的操作
- 25. 使用@XmlJavaTypeAdapter映射映射时的JAXB和空名称空间
- 26. 瓷砖2,JSP的映射
- 27. 更新java映射条目
- 28. 将struts2操作结果映射到控制器而不是jsp
- 29. 打开用于导航的目标名称集的Apple映射
- 30. 在Spring中映射jsp?
感谢您的解释,这帮助我解决了类似的情况。一方面,您实际上并不需要Preparable接口,您可以在声明它时初始化Map。 – shakerlxxv 2012-11-01 02:42:28