s:要删除的表单标记操作参数

Phi*_*ish 6 java forms parameters jsp struts2

我搜索和搜索,这正在摧毁我.我有这个:

<s:form method="post" action="%{methodOne}" cssClass="buttons">
Run Code Online (Sandbox Code Playgroud)

emailFormUrl正确返回URL,但参数已被剥离.

  public String methodOne() {
    return anotherClass.methodTwo(id);
  }
Run Code Online (Sandbox Code Playgroud)

其中提到:

  public static String methodTwo(
      String id) {
    return fastEncode("", "longurl/view.jsp",
        new ParameterPairing("id", id));
  }
Run Code Online (Sandbox Code Playgroud)

由于某种原因,id被剥离,这给我留下了验证错误,并且没有完成我需要的操作.据我所知,在7月紧急安全更新之前我们没有遇到任何问题,但它是很少使用的小功能(我认为它的删除参数).

我不想添加一个隐藏的参数,因为我想了解这不起作用的原因,而不是一个解决方法(我仍然在我职业生涯的重要学习部分).

Ale*_*r M 1

在 servlet 环境中,<s:form>标签使用ServletUrlRenderer类来呈现表单 url。action如果找不到属性中指定的操作的配置,action则将使用属性的文字值(不带参数)。

注意:您需要使用不带扩展名的操作名称,以便可以在配置中找到它。因此,some_action?foo=bar如果您有配置,则会在表单中设置参数some_action,但some_action.action?foo=bar由于扩展而找不到.action,并且参数将被删除。