我想从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与ognl表达式作为字段名称的通配符操作映射
- 3. Struts2没有正确地将JSP中的文本字段映射到Action类
- 4. 如何将JSON字段名称映射到不同的对象字段名称?
- 5. 表达式引擎中的自定义字段名称映射
- 6. 根据映射条目更改scala宏中的简单类型检查的映射条目字段
- 7. 将类字段名称映射到myBatis中用于插入的列名称
- 8. 动作映射名称空间误差与struts2的
- 9. 使用GSON将更改的字段名称映射到POJO
- 10. 将JSON对象映射到不同的架构字段名称
- 11. 如何使用非法json字段名称重命名和重映射字段
- 12. struts2的休眠映射
- 13. Struts2的形式来操作字段映射自动
- 14. Struts2的时间(HH:MM)映射到动作字段
- 15. Liferay + Struts2没有操作映射为操作名称默认值。
- 16. struts2参数映射
- 17. Powershell安全标识映射/ Active Directory中的名称映射
- 18. 使用JSON映射映射Hive中的列名称
- 19. 无效的条目表单映射。其他映射具有相同的名称,但具有不同的ID
- 20. 使用servlet映射隐藏JSP项目中的.jsp扩展
- 21. 用特定任务名称映射项目名称
- 22. JSP servlet映射
- 23. ES自定义动态映射字段名称更改
- 24. 自动映射似乎不喜欢'名称'字段
- 25. 如何将Json属性名称映射到Java字段值
- 26. 使用DataMapper ORM for php来映射字段名称
- 27. 如何在Django/PyAMF和Flex之间映射字段名称?
- 28. SORM:将字段映射到自定义列名称?
- 29. 映射ElasticSearch的GeoPoint字段
- 30. 目录名称无效,映射的驱动器和用户名
感谢您的解释,这帮助我解决了类似的情况。一方面,您实际上并不需要Preparable接口,您可以在声明它时初始化Map。 – shakerlxxv 2012-11-01 02:42:28