1

私はすべてのアクション Bean で URL バインディングを使用していますが、一部のアクション Bean にはパラメーター (/admin/users/123 など) が必要です。

この URL を例にとると、私のアクション Bean では、パラメーター 123 を取得して、ユーザー情報を正常に表示できます。同じページでユーザー情報を変更できますが、ここで問題が発生します。

更新されたユーザー情報を送信すると、URL は /admin/users になります。

context.getRequest().getRequestURL() を呼び出すと、/admin/users/123 ではなく /admin/users が返されるため、これは問題です。

これは、jsp でのタグの記述方法が原因であると考えられます。

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

これはに解決されます

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

対応するアクション Bean は、次のようにコーディングされ、注釈が付けられます。

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

誰かが同じ問題に遭遇し、それを解決できましたか?

4

2 に答える 2

3

Martin Walsh が Stripes メーリング リストで回答したように、<stripes:param>内でタグを使用できます<stripes:form>。redirect-after-post (またはPost/Redirect/Get ) を実行すると、 /admin/users/123 URL に戻ることもできます。

于 2012-09-11T12:20:48.940 に答える
0

JSPを使用していない場合(私の場合はVelocityを使用しています)でも、リクエストにID(123)を明示的に入れて転送するか、Frankが示したように投稿後にリダイレクトすることができます。

于 2013-01-15T21:54:58.567 に答える