一尘不染

s:form标签动作参数被删除

jsp

我搜寻了,这毁了我。我有这个:

<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月紧急安全更新之前,我们没有遇到任何问题,但是它是很少使用的小功能(我想是删除它的一个论据)。

我不想添加一个隐藏参数,因为我想了解它不起作用的原因,而不是一种解决方法(我仍然处于职业生涯的重学期)。


阅读 414

收藏
2020-06-10

共1个答案

一尘不染

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

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

2020-06-10