页面加载时调用的PrimeFaces oncomplete backing方法
PrimeFaces 5.0, JSF2.2, 玻璃鱼4.1.1 我假设我的设置中有些东西配置不正确,但我不确定该看什么 所以我使用managedbeans来支持JSF页面。在页面上的PrimeFace元素中,如果使用oncomplete属性,则在页面加载时会调用它引用的方法。我不希望它在每次页面加载时调用该方法,我也不相信它应该这样做 我已经在几页和不同的元素中对此进行了测试。 我第一次注意到这个问题是在一个页面加载时调用的PrimeFaces oncomplete backing方法,primefaces,jsf-2,java-ee-7,glassfish-4.1,Primefaces,Jsf 2,Java Ee 7,Glassfish 4.1,PrimeFaces 5.0, JSF2.2, 玻璃鱼4.1.1 我假设我的设置中有些东西配置不正确,但我不确定该看什么 所以我使用managedbeans来支持JSF页面。在页面上的PrimeFace元素中,如果使用oncomplete属性,则在页面加载时会调用它引用的方法。我不希望它在每次页面加载时调用该方法,我也不相信它应该这样做 我已经在几页和不同的元素中对此进行了测试。 我第一次注意到这个问题是在一个元素中,我试图在上传完所有文件后使用oncomplete调用一个方法。 我随后在上尝试
元素中,我试图在上传完所有文件后使用oncomplete调用一个方法。
我随后在
上尝试了这一点,加载页面时会调用oncomplete
我已经检查了生成的HTML,并且有一个格式正确的
标记对
我还完成了对生成的HTML的区分,包括oncomplete属性和oncomplete属性
与:
`
没有:
<button id="j_idt21:j_idt26"
name="j_idt21:j_idt26"
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
onclick="PrimeFaces.ab({s:'j_idt21:j_idt26'});
return false;"
type="submit">
下面是上面HTML的代码,显示oncomplete在加载任何页面时调用该页面上的方法。这是我的登录页面
<p:commandButton validateClient="true" value="Login"
action="#{loginJSFManagedBean.validateCredentials}"
type="submit"
ajax="true"
oncomplete="#{loginJSFManagedBean.validateCredentials}">
</p:commandButton>
每次加载登录页面时,都会调用validateCredentials方法,甚至在页面完成呈现之前
以下是我上传文件时使用的JSF片段:
<h:form enctype="multipart/form-data">
<p:fileUpload oncomplete="#{JSFManagedBean.extract()}"
fileUploadListener="#{JSFManagedBean.handleTarFileUpload}"
mode="advanced" ></p:fileUpload>
</h:form>
每次页面加载时,extract()方法被调用…oncomplete是一个客户端javascript回调。当呈现页面时,会调用您的方法,因为服务器计算那些EL表达式,希望它们生成包含javascript代码的字符串来发送
您可能根本不需要这些oncomplete处理程序。对于登录按钮,操作处理程序应该足够了。对于fileUpload,如果您的目标只是“提取”,那么fileUploadListener就足够了上传的文件如方法名称所示。文档中的何处说明了“oncomplete”在“Executed”时能够调用java服务器端方法?按钮上尝试执行的操作可能重复,首先是actionListener,然后是action。对于你可以做的文件上传,或者有很多关于这个的“重复”,我甚至引用了。gopd的做法是将这个问题标记为重复问题,这样StackOverflow就不会被几乎相同的答案弄乱
<h:form enctype="multipart/form-data">
<p:fileUpload oncomplete="#{JSFManagedBean.extract()}"
fileUploadListener="#{JSFManagedBean.handleTarFileUpload}"
mode="advanced" ></p:fileUpload>
</h:form>