3

こんにちは私はアプリケーション開発にGWTPを使用しています。アプリケーションでは、サーバー側のセッションインスタンスを使用して、そのセッションインスタンスにデータを配置する必要があります。ActionSupportクラスを拡張するActionクラスがあるGWTの例をいくつか見ました。例には、サーバー側のセッションインスタンスを作成するためのいくつかの方法があります。以下のように:

public HttpServletRequest getRequest() {
        return ServletActionContext.getRequest();
    }

public HttpServletResponse getResponse() {
    return ServletActionContext.getResponse();
}

public HttpSession getSession() {
    HttpSession session = getRequest().getSession();
    return session;
}

しかし、私はGWTPで同様のものを取得していません。私を助けてください。前もって感謝します。

4

2 に答える 2

4

最後に、私を助けてくれるものをいくつか手に入れました。これをここで共有しています。

private Provider<HttpServletRequest> requestProvider;
private ServletContext servletContext;


@Inject
public LoginCallerActionHandler(
        Provider<HttpServletRequest> requestProvider,
        ServletContext servletContext) {
    super();
    this.requestProvider = requestProvider;
    this.servletContext = servletContext;
}

これが私のアクションハンドラークラスです。セッションを使用できます。

servletContext.setAttribute(SessionKeys.LOGGEDIN_USER.toString(), returnObject.getLoggedInUser());
于 2011-08-24T14:37:35.687 に答える
1

サーバー側でSpringまたはGuiceを使用している場合、リクエスト/レスポンスをアクションに挿入できます。たとえば、GWTP のDispatchServletModuleを使用している場合、Guice のServletModuleの機能を次のように使用できます。

DispatchServletModule は Guice ServletModule を拡張し、リクエスト URL をハンドラー クラスにマップします。

Guice wikiの例を次に示します。

@RequestScoped
class SomeNonServletPojo {

  @Inject
  SomeNonServletPojo(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
    ...
  }

}

GWTP がハンドラーをシングルトン スコープでバインドするかどうかはわかりません。シングルトンでバインドする場合は、代わりにプロバイダーを注入する必要があります。

于 2011-08-17T11:41:48.990 に答える