【问题标题】:Pass Map values (created in javascript) to Action - struts2将 Map 值(在 javascript 中创建)传递给 Action - struts2
【发布时间】:2013-10-18 09:55:33
【问题描述】:

我有一个用 javascript 创建的 MAP 对象。我已经在 javascript 中为这个 MAP 分配了值。如何在 Struts2 操作中访问此 MAP 对象?请帮我解决这个问题。

这里是 javascript 中的 MAP 对象代码 -

Map map = new Object();
map['key1'] = 'value1';
map['key2'] = 'value2';
map['key3'] = 'value3';

现在我想要 struts2 动作中的上述 'map' 对象键和值。

提前致谢。

【问题讨论】:

  • 您需要将这些值提交给操作。
  • 感谢您的回复。实际上,我正在做的是,遍历 Map 值并将值添加到这样的字符串 - key1~value1^key2~value2^key3~Value3 并将其存储在隐藏字段中。 Onclicking 提交我正在访问这个隐藏字段并使用“拆分”来拆分字符串。现在,这有一个约束,所以我需要将值 a s a MAP 传递给 action 而不是 String。
  • 我的问题是如何将这个 MAP 分配给 JSP 中的表单值,然后在 struts2 操作中访问它?

标签: java javascript struts2


【解决方案1】:

Javascript 代码位于客户端。即:浏览器。 Struts 动作存在于服务器端。即:您的服务器(tomcat/jboss 等)。因此,您需要将您在客户端(在 javascript 对象内)的数据发送到服务器端。你如何做到这一点取决于你的情况。如果您有提交(通过提交按钮),那么您可以通过它在您的 javascript 对象中发送信息。一种可能性是在正在提交的“表单”内单击提交按钮时创建如下所示的“隐藏”字段。

<input type="hidden" name="key1" value="value1" />

然后在您的 struts2 操作中,您可以获取参数映射并遍历它以找出提交的值。

编辑

如果你想直接在动作类中填充一个 Map。然后使用以下命名约定

<input type="hidden" name="valueMap['key1']" value="value1" />

在您的操作类中,如果您有一个 Map&lt;String, String&gt; valueMap; 字段,那么它将被正确填充

【讨论】:

  • 感谢您的回复。实际上,我正在做的是,遍历 Map 值并将值添加到这样的字符串 - key1~value1^key2~value2^key3~Value3 并将其存储在隐藏字段中。 Onclicking 提交我正在访问这个隐藏字段并使用“拆分”来拆分字符串。现在,这有一个约束,所以我需要将值 a s a MAP 传递给 action 而不是 String。
  • 我的问题是如何将这个 MAP 分配给 JSP 中的表单值,然后在 struts2 操作中访问它?
  • 感谢回复,我无法将值设置为 valueMap['key1']。你能帮我设置地图值吗 Map map = new Object();地图['key1'] = 'value1';地图['key2'] = 'value2';地图['key3'] ='value3';到 valueMap['key1']
  • @user2894149 你目前如何设置隐藏字段的“名称”属性..只需将名称属性设置为“mapValue ['key1']”就可以了..你能发布你的javascript代码吗
  • var map = new Object(); map[''] = '' 地图正在基于迭代器生成。隐藏字段名称如您所说设置。现在,我有一个地图对象,如何将其设置为隐藏字段值?
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多