的情况如下: 在客户端的用户输入一些数据,并按下一个命令按钮来发起Ajax请求。根据输入数据,服务器端的JSF Bean会重定向到不同的页面。但是除此之外,HTML5特性localstorage和sessionstorage应该在客户端更新,也取决于bean的结果。对于存储来说,从用户输入的某些数据是必需的,因此存储的Java脚本必须位于原始页面内。呼叫JS功能之前重定向
现在,问题似乎是,响应之后,重定向总是先执行,然后再执行js函数,因此无法从诅咒的客户端访问用户的输入数据。
我试图在客户端使用回调参数(重定向发生较早)或RequestContext.execute从服务器端按下命令按钮(例如“oncomplete”)后调用js函数(但内部也使用oncomplete事件我认为)。 我能想到的一个可能的解决方案是在客户端使用window.onunload,并使用隐藏的输入形式来获取bean的结果。但是没有更好的解决方案吗?
好,在正常情况下,这似乎很有道理,但也有一个其他的方面,使得它更加复杂:豆被重定向到一个错误消息的错误的servlet在错误的情况下。当然,这一切都可以在js中管理,例如重定向url的回调参数和可能的错误信息,但是我不知道我是否应该对这个解决方案感到满意。 使用jsf或primefaces直接写入localstore/sessionstore与服务器的响应是不可能的,是吗? – smotron