Java Struts2S:submit按钮语法用于在映射中设置值

Java Struts2S:submit按钮语法用于在映射中设置值,java,struts2,Java,Struts2,我正在浏览一些Struts 2代码,我看到了提交按钮的语法,这是我以前从未见过的 <s:submit key="map.keyName$Value" /> 它不再工作了(它曾经与Struts 2.0.x一起工作,现在我们已经转移到Struts 2.2.3)。我的意思是它没有根据地图中提到的键设置适当的值 以前有人用过这个语法吗 任何其他可以让我在映射中设置值的替代语法建议(仅使用struts标记)都是最受欢迎的 包含此代码的jsp页面被设计为一个解耦组件,可以在运行时由任何页面

我正在浏览一些Struts 2代码,我看到了提交按钮的语法,这是我以前从未见过的

<s:submit key="map.keyName$Value" />

它不再工作了(它曾经与Struts 2.0.x一起工作,现在我们已经转移到Struts 2.2.3)。我的意思是它没有根据地图中提到的键设置适当的值

以前有人用过这个语法吗

任何其他可以让我在映射中设置值的替代语法建议(仅使用struts标记)都是最受欢迎的

包含此代码的jsp页面被设计为一个解耦组件,可以在运行时由任何页面包含,这就是为什么此页面不能调用任何java代码来在java map中设置这些值-这就是为什么我正在寻找可以在map中设置值的标记解决方案


提前感谢

通过以下方式设置地图中的值:

仅在JSP中使用

OGNL分配声明:

<s:set var="" value="map[key] = keyValue" /> 

Java

<s:set var="" value="map.put(key, keyValue)" /> 


编辑

您可以使用设置map(to action类)中的值


通过带有onclick属性的提交按钮,例如(应答-假设多个提交按钮):


函数设置映射(键、键值){
document.getElementById(“mapToSet”).name=“map['”+key+”””;
document.getElementById(“mapToSet”).value=keyValue;
}

我在搜索“如何在Struts2中设置地图中的值”时找到了这一页,它让我得到了以下答案(我知道这有点奇怪):


作为HTML输入元素:

<input type="hidden" name="myField[105]" value="myValue" />

单击s:submit按钮时,我需要在映射中设置此值。能否将s:set标记嵌套在s:submit标记中?谢谢lschin,您的解决方案可以完成这项工作。但我的问题是,我无法将应用程序的这些关键功能基于javascript,因为即使最终用户禁用了javascript,客户端也需要应用程序正常工作。因此,我仍然在寻找一些基于struts/jstl标记的解决方案,它可以在不调用操作的情况下为我完成这个setter工作。
<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)" />
<input type="hidden" name="myField[105]" value="myValue" />
Map<Integer, String> myField;
myField.get(105).equals("myValue"); // == true