Ste*_* Oh 1 richfaces jsf-2 omnifaces
我使用了伟大的omnifaces 1.7解决方法FixViewState来修复以下问题:viewstate和ViewScope在ajax render ="@ form"上丢失.解决方法似乎适用于f:ajax但不适用于a4j:ajax(richfaces).
该修复程序是否应该与开箱即用的richfaces一起使用?(richfaces版本是4.3.5)
也许是由a4j记录的相关问题:日志:
error[15:09:31.667]: [status=200] During update: javax.faces.ViewState not found
Run Code Online (Sandbox Code Playgroud)
谢谢!
Tl; dnr:Richfaces-4.x被JSF-2.2破坏了
长版:
关于来自评论和个人经验的信息:这是Richfaces-4.x与Mojarra-2.2.x一起出现的已知错误.有关详细信息,请参阅RF-13317.
要点是JSF-2.2改为ViewState隐藏输入字段的规范,RichFaces没有跟上(它的目标是JSF-2.1,所以没关系).它仍然呈现一个JSF-2.1 viewstate id,它混淆了Mojarra-2.2.x中包含的Javascript,因为它现在试图找到一个具有JSF-2.1 viewstate id的元素,但却找不到.这使得与RichFaces的每个ajax调用名义上都失败了,尽管是以非破坏性的方式.
就个人而言,我使用一个相当难看的技巧来进行上述传递:
<o:onloadScript>
jQuery('#viewStateContainer').html('<span id="javax.faces.ViewState"></span>');
</o:onloadScript>
<span id="viewStateContainer" style="display:none;"></span>
Run Code Online (Sandbox Code Playgroud)
这为RichFaces提供了一个伪元素来放置视图状态(在进程中销毁它,因此需要重新创建它onloadScript).
这似乎解决了我的问题,但相当混乱.所以随时评论/询问.
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |