我是GWTP的新手。我正在尝试使用GWTP +命令模式+ Spring构建应用程序。
目前我的应用程序有一个使用Spring控制器的登录页面,它将用户重定向到GWT页面。在spring控制器中,我们可以像访问HttpRequest对象一样访问session。在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 ?
谢谢@Baadshah,但我在服务器端使用Spring。顺便说一下,我得到了解决方案,我张贴如果有人面临类似的问题。
首先我们需要在web.xml
中添加以下条目<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
RequestContextListener是一个将请求公开给当前线程的监听器。
,然后我们可以使用@Autowired注释。
@Autowired
private HttpServletRequest httpServletRequest;
和在处理方法中,我们可以从这个httpServletRequest使用getSession方法。