浏览器多个标签 - JSF 1.2广告

时间:2012-05-24 21:39:33

标签: jsf

我正在使用JSF 1.2 + RichFaces系统。这个系统是一种博客。用户可以创建自己的博客并进行管理。可通过以下网址访问博客:

www.meublog.com/NameOfBlog

我使用会话范围的单Managed Bean来进行所有控制。当用户访问博客时,我使用通过URL的过滤器,该过滤器识别出正在访问的博客,将博客的ID放入会话中并向博客索引提供支持。 我使用此会话ManagedBean来控制博客视图中的所有内容。 问题是浏览器在多个选项卡之间共享相同的会话。当用户在一个选项卡上访问此www.meublog.com/julio的博客而在另一个选项卡中访问www.meublog.com/fulano时,我无法识别这两个博客,因为我只建立了一个会话。

我想知道是否有人知道在这里遵循正确的道路......

1 个答案:

答案 0 :(得分:1)

您不应将请求作用域信息存储在会话范围中,原因完全在于您所面临的原因。使用请求范围的托管bean,而不是根据请求URI初始化。您可以通过ExternalContext和/或HttpServletRequest获取大部分请求详细信息。

,例如,在bean的构造函数或@PostConstruct方法中:

ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();

// If you use suffix mapping like *.jsf
String servletPath = ec.getRequestServletPath(); 

// Or if you use prefix mapping like /faces/*
String pathInfo = ec.getRequestPathInfo();

// Now initialize based on the value of either servletPath or pathInfo.

另见: