我使用struts 1配置了zk。我创建了一个列表并在会话中设置。
List<String> nameList = new ArrayList<String>();
nameList.add( "xxx" );
nameList.add( "yyy" );
nameList.add( "nnn" );
nameList.add( "ddd" );
request.getSession().setAttribute("NAMES_LIST", nameList);
现在从zul
文件我试图获取会话值。我该怎么做?
答案 0 :(得分:3)
ZK会话是HttpSession之上的包装器对象,因此访问是相同的。使用EL,只需使用sessionScope,例如$ {sessScope ['xxx']}。
在Java中,只需使用getAttribute即可。要获取会话对象,可以调用Sessions.getCurrent()。
希望它有所帮助。
答案 1 :(得分:3)
你必须在zk会话上调用getNativeSession然后将其转换为struts正在使用的javax.servlet.http.Session。
尝试将zk与struts混合是错过了重点。使用zk执行您需要做的任何事情并更新zk组件,浏览器将自动更新。将数据放入旧样式表单发送到服务器然后更新页面是旧样式编程并且比zk事件驱动编程效率低,您只需更新zk桌面(不需要考虑页面)并且屏幕已更新。您的使用可以整天使用丰富的行为,而无需发布与struts交互的表单。