Jsf @在每个<;p:ajax>;要求

Jsf @在每个<;p:ajax>;要求,jsf,primefaces,view-scope,postconstruct,Jsf,Primefaces,View Scope,Postconstruct,我使用的是JSF2.2和PrimeFaces 5.2,我有一个Chackbox列表,它通过 <p:ajax listener="#{packageListBean.filterResults()}" update="@form" process="@this"/> 这很奇怪,因为我希望@PostConstruct方法只能在页面的第一个GET-reqest中调用 在BalusC评论后添加: 我将jquery包括在内,如下所示: <h:outputScript library=

我使用的是JSF2.2和PrimeFaces 5.2,我有一个Chackbox列表,它通过

<p:ajax  listener="#{packageListBean.filterResults()}" update="@form" process="@this"/>
这很奇怪,因为我希望@PostConstruct方法只能在页面的第一个GET-reqest中调用

在BalusC评论后添加:

我将jquery包括在内,如下所示:

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
这是f:ajax提出的请求

POST /index.jsf HTTP/1.1
Host: cloudflow-backend-local.arctur.net:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: sl,en-GB;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Faces-Request: partial/ajax
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Referer: http://cloudflow-backend-local.arctur.net:8080/index.jsf
Content-Length: 498
Cookie: lng=sl; ****************.*******
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

您的托管bean真的被注释为ViewScope吗?您只显示导入而不显示注释,在这种情况下,如果找不到范围注释,您的托管bean就是请求范围。

是的,我的bean是用javax.faces.view.ViewScoped注释的,是CDI bean而不是托管bean,我还发现,如果我使用f:ajax而不是p:ajax,它可以正常工作……这是prime faces中的一个bug吗?这应该是一个注释而不是答案。因此,HTTP会话不会被维护?如果我使用f:ajax而不是p:ajax,则不会调用@PostConstruct方法,也会调用侦听器,但我想知道为什么?这是primefaces p:ajax中的一个bug吗?那么,您是手动包含jQuery吗?您是否按照中的说明检查了浏览器控制台以获取线索?@BalusC我已经更新了问题,broswer控制台没有错误,当从p:ajax或f:ajax调用时,我还将请求头数据包含在问题中。不确定这是否有帮助,但我想说
p:ajax
应该使用
update=“@(form)”
而不是
update=“@form”
(注意括号)。
POST /index.jsf HTTP/1.1
Host: cloudflow-backend-local.arctur.net:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: sl,en-GB;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Faces-Request: partial/ajax
X-Requested-With: XMLHttpRequest
Referer: http://cloudflow-backend-local.arctur.net:8080/index.jsf
Content-Length: 280
Cookie: lng=sl; **************.*****
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
POST /index.jsf HTTP/1.1
Host: cloudflow-backend-local.arctur.net:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: sl,en-GB;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Faces-Request: partial/ajax
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Referer: http://cloudflow-backend-local.arctur.net:8080/index.jsf
Content-Length: 498
Cookie: lng=sl; ****************.*******
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache