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

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

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

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

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

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

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

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

请提出一些建议!

谢谢!!

【问题讨论】:

    标签: java javascript jsp struts2


    【解决方案1】:

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

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

    1. 您可以使用表单“提交”按钮指向您要发送数据的 URL,并将 target="_blank" 添加到表单中,这将导致在提交表单时打开一个新页面.
    2. 您可以在链接中添加一个 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,其中包含获取参数。

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 2016-07-13
      • 1970-01-01
      • 2014-03-30
      • 2014-04-23
      • 2013-06-11
      • 1970-01-01
      • 2012-06-04
      • 2017-12-12
      相关资源
      最近更新 更多