Struts 2:将表单字段的值从 jsp 发送到操作类

Posted

技术标签:

【中文标题】Struts 2:将表单字段的值从 jsp 发送到操作类【英文标题】:Struts 2: Sending values of form fields from jsp to action class 【发布时间】:2012-05-17 22:45:23 【问题描述】:

我知道它一定很简单,但我还是想不通。

我在 jsp 页面上有一个链接。

单击此链接时,我希望打开另一个(浏览器)选项卡。

这个新页面的视图是由action类定义的,它需要一个表单域值。

我面临的问题是,如果不提交表单,我无法将表单字段的值传递给操作类。并且提交表单也会改变原始 jsp 的视图,这违背了打开新标签的全部目的。

所以我需要一种在不重置原始 jsp 页面视图的情况下将表单字段值获取到操作类的方法。

我遇到的一种方法是 URL 重写,但这是我最后的选择。

请提出一些建议!

谢谢!!

【问题讨论】:

【参考方案1】:

首先我想指出,目前可能(据我所知)强制显示新标签,这取决于用户的浏览器和他们看到的设置here 以获取更多信息。

现在谈谈您的问题,因为链接无法(单独)发送表单数据,您有两种选择:

    您可以使用表单“提交”按钮指向您要发送数据的 URL,并将 target="_blank" 添加到表单中,这将导致在提交表单时打开一个新页面. 您可以在链接中添加一个 javascript 事件,以便在按下它时将输入值附加到 URL 并使用该 URL 打开一个新窗口。

我个人会选择第一个选项。

这是选项一的简单示例,在您提交时不会删除输入值...

<html>
  <body>
    <form action="test1.html" method="post" target="_blank">
      <input type="text" name="bob" />
      <input type="submit" value="Hello"/>
    </form>
  </body>
</html>

【讨论】:

我已经尝试过选项一。问题在于原始页面(单击链接的页面)也被刷新。我不要那个。我对第二个选项不太满意,不过如果你有一个快速的代码,我想试试。 @kanishk 你确定你正确地完成了选项一吗?当我尝试最简单的示例时,它并没有这样做 - 值被保留了...... 嘿,谢谢伙计。我在链接的目标属性中放置了空白,_空白。对表单做同样的事情就像一种魅力。【参考方案2】:

您可以进行 ajax 调用,或动态构建链接 url,其中包含获取参数。

【讨论】:

以上是关于Struts 2:将表单字段的值从 jsp 发送到操作类的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本字段数据从 Struts 2 中的 ajax 操作传递到原始调用 .jsp?

将 Oracle 10g 中的值从表单 1 传递到表单 2 并将另一个值从表单 2 返回到表单 1 是不是可能

如何将变量的值从java类传递到jsp页面

如何在不刷新页面的情况下将值从 jsp 页面发送到数据库

将值从表单传递到表单

将值从 JSP 发送到 servlet