0

我是 GWTP 的新手。我正在尝试使用 GWTP + 命令模式 + Spring 构建应用程序。

目前我的应用程序有一个使用 Spring 控制器的登录页面,它将用户重定向到 GWT 页面。在 Spring 控制器中,我们可以访问 session,因为我们可以访问 HttpRequest 对象。在 GWTP 命令处理程序的情况下,我找不到任何访问 HttpSession 的方法。以下是我的命令处理程序代码 -

public class GetItemsCommandHandler extends AbstractActionHandler<GetItemsCommand, GetItemsResult>{

    @Autowired
    private ItemService itemService;

    public GetItemsCommandHandler() {
        super(GetItemsCommand.class);
    }

    @Override
    public GetItemsResult execute(GetItemsCommand action, ExecutionContext context) throws ActionException {
        // How to get User info(userid) from session??
        GetItemsResult getItemsResult = new GetItemsResult();
        getItemsResult.setItems(itemService.getItemsForUser(userId));
        return getItemsResult;
    }

}

有什么方法可以从 GWTP 命令处理程序访问 HttpSession 吗?

4

1 回答 1

0

感谢@Baadshah,但我在服务器端使用 Spring。顺便说一句,我得到了解决方案,如果有人面临类似问题,我会发布。

首先,我们需要在 web.xml 中添加以下条目

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

RequestContextListener是一个监听器,将请求暴露给当前线程。

然后我们可以使用@Autowired 注解。

@Autowired
private HttpServletRequest httpServletRequest;

在处理方法中,我们可以使用getSession方法从这个httpServletRequest进行会话。

于 2013-04-13T16:01:50.790 回答