我遇到一个问题,使用Primefaces dataTable,这是jsf将调用我的托管bean init()这将做一个数据库搜索。JSF PrimeFaces ViewScope不调用init()
在我的jsf中,用户可以执行另一个搜索,在String中传递参数。
<p:commandButton id="btnChild" type="Submit" icon="ui-icon-plus" styleClass="action-buttons" value="Child" update=":frmSysMenu:messages dtSysMenu" ajax="false" action="#{Controller.doParent('C')}" process="dtSysMenu" />
我管理的Bean能够执行doParent(字符串),并会再次返回到搜索屏幕,但一旦我的屏幕加载时,它会调用的init()其中:
@PostConstruct
@Override
public void init(){
try {
doSearch(nodeValue,"root");
setParentNode(nodeValue);
} catch (Exception e) {
addErrorMessage(e.getMessage());
e.printStackTrace();
Messages.addGlobalError(e.getMessage());
LOG.error(e.toString(), e);
}
}
它会回到第一个查询。 有没有其他方法可以做?
RequestScoped有帮助吗?
欢迎来到Stackoverflow!如果你已经解决了你的问题(恭喜),那么请张贴它作为答案。它可以帮助其他人快速找出问题已经解决。 – mabi
非常感谢!对不起,我是新的,并感谢您的建议:D –
可能重复[JSF 2.1查看范围管理bean重新创建每个刷新](http://stackoverflow.com/questions/19153374/jsf-2-1-view-范围的管理,豆重新创建上,每刷新) – Kukeltje