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?