【问题标题】:How to pass a parameter in URL on a form submit in Struts2如何在 Struts2 中提交表单的 URL 中传递参数
【发布时间】: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 我正在通过表单操作传递参数。这是你需要的吗?

标签: java url struts2 struts parameter-passing


【解决方案1】:

试试这个:

<s:form action="xyz.action" method="GET">
    <s:hidden name="user" value="george"/>
    // other fields
</s:form>

method="GET" 将在 url 上显示您的参数,&lt;s:hidden name="user" value="george"/&gt; 将采用您的参数。

这里也是一个例子Example

【讨论】:

  • 这是最接近正确解决方案的方法。请参阅:stackoverflow.com/questions/1116019/…TLTR:按照html标准,form标签的action属性中不应该有查询参数。
  • 这不是正确的解决方案,因为它在 URL 中缺少参数。
【解决方案2】:

如果您使用&lt;s:url&lt;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">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多