我想從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