如何在 Struts2 中提交表单的 URL 中传递参数
Posted
技术标签:
【中文标题】如何在 Struts2 中提交表单的 URL 中传递参数【英文标题】:How to pass a parameter in URL on a form submit in Struts2 【发布时间】:2012-11-02 15:36:24 【问题描述】:我正在 Struts2 中做一个项目,我需要在 URL 中设置一个参数,例如下面链接中的用户参数。
我希望在单击表单提交按钮时传递此参数,而不是单独传递任何链接。我知道如何使用<s:url>
做到这一点,但这样我需要创建一个链接而不是表单提交。
有人可以帮我提供一个代码示例如何做到这一点吗?
我知道有一种方法可以使用 html 或 Struts1 来实现,但是如何使用 Struts2 来实现呢?如果struts.xml
有办法做到这一点,请举例说明。
<form action="/example/xyz.action?user=george" method="POST">
【问题讨论】:
为什么不将值存储在隐藏字段中?当您提交表单时,它将自动提交。 有很多方法可以做到这一点。就像沙申克说的那样去隐藏领域,它是最整洁的。 你要每次都传这个参数吗?或者你为什么要在struts.xml
这样做?
@user1819548 我正在通过表单操作传递参数。这是你需要的吗?
【参考方案1】:
试试这个:
<s:form action="xyz.action" method="GET">
<s:hidden name="user" value="george"/>
// other fields
</s:form>
method="GET"
将在 url 上显示您的参数,<s:hidden name="user" value="george"/>
将采用您的参数。
这里也是一个例子Example
【讨论】:
这是最接近正确解决方案的方法。请参阅:***.com/questions/1116019/…。 TLTR:按照html标准,form标签的action属性中不应该有查询参数。 这不是正确的解决方案,因为它在 URL 中缺少参数。【参考方案2】:如果您使用<s:url
和<s:form
标签,这是可能的。
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:url id="xyzUrl" action="xyz" includeContext="false"><s:param name="user" value="george"/></s:url>
<s:form name="xyzForm" action="%xyzUrl" method="POST">
【讨论】:
以上是关于如何在 Struts2 中提交表单的 URL 中传递参数的主要内容,如果未能解决你的问题,请参考以下文章