【发布时间】:2016-11-24 01:33:44
【问题描述】:
我正在制作一个调用 PrettyFaces 页面加载操作方法的页面:
<url-mapping id="informes-perfil">
<pattern value="/informes/#{informesPerfilMB.codigo}" />
<view-id value="/faces/informes_perfil.xhtml" />
<action onPostback="false">#{informesPerfilMB.load()}</action>
</url-mapping>
由于某种原因,informesPerfilMB.load() 操作被调用了两次,第二次调用中的参数值为 'null' 或 'RES_NOT_FOUND'。
这是我的加载方法:
public void load() {
if (isPostBack) {
isPostBack = false;
try {
System.out.println(codigo);
informe = informeEJBServiceLocal.getByCodigo(codigo);
this.buscarInformeIngreso();
this.buscarInformeOtroIngreso();
} catch (EJBServiceException e) {
e.printStackTrace();
}
}
}
isPostBack 变量被初始化为false,所以这应该可以防止该方法被再次调用,但出于某种原因它是。
此代码首先打印String: dcc509a6f75849b。
然后当重复加载时,它会打印:RES_NOT_FOUND
我希望这段代码有助于解释正在发生的事情足以解决我的问题,谢谢。
【问题讨论】:
-
能否包含您的配置? web.xml 和 faces-config.xml?
-
另外,您使用的是什么版本的 PrettyFaces?
-
如果您在此方法中设置断点(或打印堆栈跟踪)并发布堆栈以便我们可以看到从何处调用该方法,这也会有所帮助。这是了解为什么该方法被调用两次的第一步。
-
rewrite-config-prettyfaces-2.0.9.Final.jar, rewrite-integration-faces-2.0.9.Final.jar, rewrite-servlet-2.0.9.Final.jar 在 JBoss EAP 6.2
标签: jsf action prettyfaces