我在我所有的 actionbeans 上使用 URL 绑定(bind),其中一些需要一个参数,例如/admin/users/123.
以这个 URL 为例,在我的 actionbean 中,我能够获取参数 123 并正常显示用户信息。同一页面允许更改用户信息,这就是问题所在。
提交更新后的用户信息时,URL 变为/admin/users。
这是个问题,因为调用 context.getRequest().getRequestURL() 返回的是/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;}
}
有没有人遇到同样的问题并设法解决了?
最佳答案
作为answered在 Martin Walsh 的 Stripes 邮件列表上,您可以使用 <stripes:param>
标签内 <stripes:form>
.我要补充一点,执行发帖后重定向(或 Post/Redirect/Get )还可以让您返回到您的/admin/users/123 URL。
关于java - Stripes UrlBinding - 参数在提交时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12173702/