[英]Struts 2 s:submit button syntax to set values in map
我正在瀏覽一些Struts 2代碼,並且看到了以前從未見過的Submit按鈕的語法。
<s:submit key="map.keyName$Value" />
它不再起作用了(它已經與Struts 2.0.x一起使用了,現在我們已經遷移到Struts 2.2.3了)。 我的意思是,它沒有根據地圖中提到的鍵設置適當的值。
以前有人使用過這種語法嗎?
我們將歡迎其他任何可讓我在地圖中設置值的語法建議(僅使用struts標記)。
包含此代碼的jsp頁面被設計為一個解耦的組件,可以在運行時包含在任何頁面中,這就是為什么該頁面無法調用任何Java代碼來在Java映射中設置這些值的原因-這就是為什么我正在尋找可以在地圖上設置值。
提前致謝
我在搜索“如何在Struts2中的地圖中設置值”時找到了此頁面,它使我想到了以下答案(據我了解,這有點過時):
作為HTML輸入元素:
<input type="hidden" name="myField[105]" value="myValue" />
這將填充一個聲明為的動作變量:
Map<Integer, String> myField;
這樣:
myField.get(105).equals("myValue"); // == true
通過以下方式在地圖中設置值:
僅在JSP中
OGNL分配聲明:
<s:set var="" value="map[key] = keyValue" />
Java的
<s:set var="" value="map.put(key, keyValue)" />
編輯
您可以使用以下命令在地圖(到操作類)中設置值
<s:hidden name="map[key]" value="keyValue" />
例如,按具有onclick屬性的提交按鈕( 答案 -假設有多個提交按鈕):
<script type="text/javascript">
function setMap(key, keyValue) {
document.getElementById("mapToSet").name="map['" + key + "']";
document.getElementById("mapToSet").value=keyValue;
}
</script>
<s:hidden name="test" id="mapToSet" />
<s:submit value="Search" onclick="setMap(key, keyValue)" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.