我目前面临以下问题,如果有人可以帮助我,我将不胜感激。我对JSF很陌生...
我有一个具有以下体系结构的 JSF 应用程序: 主 index.html 站点包含一个 Javascript,它使用用户屏幕分辨率参数打开一个 XMLHttpRequest 到一个 servlet。servlet 接收请求,提取屏幕分辨率参数并将其发送到会话 bean 对象:
String wth = request.getParameter("width");
String hgt = request.getParameter("heigh");
HttpSession session = request.getSession(true);
Object o = session.getAttribute("mainSessionBean");
MainSessionBean mainSessionBean = (MainSessionBean) o;
mainSessionBean.setScreenWidth(wth);
mainSessionBean.setScreenHeight(hgt);
现在它以自己的方式工作,问题是在第一页 (index.html) 会话 bean 对象没有参数,但如果我们导航到另一个站点会话 bean 确实有参数。我相信这意味着 index.html 在会话 bean 对象被创建之前被渲染/创建。如果我们导航到另一个站点,会话 bean 对象确实具有必要的屏幕大小值。因此,我现在可以根据用户的屏幕分辨率动态设置 JSF 元素,但只能从第二个访问页面开始。
我想要实现的是 Javascript 向 servlet 发起其 XMLHttpRequest,然后 servlet 调用会话 bean,传递必要的屏幕尺寸分辨率,当创建第一页时,必要的参数已经到位。
我不完全确定我是否以正确的方式这样做,但任何建议,链接到正确的资源将不胜感激。