Stripes UrlBinding - 参数在提交时消失

时间:2012-08-29 08:26:26

标签: java stripes

我在所有动作束上使用URL绑定,其中一些需要一个参数,例如/管理/用户/ 123。

以此URL为例,在我的actionbean中,我可以获取参数123并显示用户信息。同一页面允许更改用户信息,这就是问题所在。

在提交更新的用户信息时,URL将变为/ admin / users。

这是一个问题,因为调用context.getRequest()。getRequestURL()会返回me / admin / users而不是/ admin / users / 123。

我认为这是由于标签在jsp中的写法:

<stripes:form beanclass="com.name.ui.web.stripes.action.admin.UserActionBean">...</stripes:form>

解析为

<form action="/admin/users" method="post">...</form>

相应的actionbean被编码并注释为:

@UrlBinding("/admin/users/{userId}")
public class UserActionBean{ 
  private long userId;
  public long getUserId(){return userId;}
  public void setUserId(long userId){this.userId=userId;}
}

有没有人遇到过同样的问题并设法解决了?

2 个答案:

答案 0 :(得分:3)

作为Martin Walsh在Stripes邮件列表上的answered,您可以使用<stripes:param>中的<stripes:form>标记。我想补充说,做一个重定向后发帖(或Post/Redirect/Get)也可以让你返回你的/ admin / users / 123网址。

答案 1 :(得分:0)

即使您没有使用JSP(在我的情况下我使用的是Velocity),您仍然可以将id(123)明确地放在请求中并转发,或者您可以像Frank指示的那样重定向后发布。 / p>