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

时间:2014-01-31 11:17:38

标签: java forms jsp parameters struts2

我搜索并搜索过,这正在摧毁我。我有这个:

<s:form method="post" action="%{methodOne}" cssClass="buttons">

emailFormUrl正确返回URL,但参数已被删除。

  public String methodOne() {
    return anotherClass.methodTwo(id);
  }

其中提到:

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

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

我不想添加隐藏参数,因为我想了解这不起作用的原因,而不是解决方法(我仍处于职业生涯的重要学习阶段)。

1 个答案:

答案 0 :(得分:1)

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

注意:您需要使用w / o扩展名的操作名称才能在配置中找到它。因此,如果您在配置中some_action?foo=bar,则some_action将使用表单中的参数进行设置,但由于some_action.action?foo=bar扩展而无法找到.action,并且参数将被删除。< / p>