我在所有动作束上使用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;}
}
有没有人遇到过同样的问题并设法解决了?
答案 0 :(得分:3)
作为Martin Walsh在Stripes邮件列表上的answered,您可以使用<stripes:param>
中的<stripes:form>
标记。我想补充说,做一个重定向后发帖(或Post/Redirect/Get)也可以让你返回你的/ admin / users / 123网址。
答案 1 :(得分:0)
即使您没有使用JSP(在我的情况下我使用的是Velocity),您仍然可以将id(123)明确地放在请求中并转发,或者您可以像Frank指示的那样重定向后发布。 / p>