我有一个Facesbehavior类可以正常工作。但是只要在.xhtml中使用标记,每个单击的命令按钮都会导致视图结构化bean的重新初始化。有办法避免这种情况吗?
@FacesBehavior("confirmBehavior")
public class ConfirmBehavior extends ClientBehaviorBase {
private static final long serialVersionUID = 123456L;
@ManagedProperty(value = "#{render}")
private Boolean render = Boolean.TRUE;
@ManagedProperty(value = "#{message}")
private String message;
@Override
public String getScript(ClientBehaviorContext behaviorContext) {
if (render) {
return "return confirm('" + message + "')";
} else {
return null;
}
} //+getters and setters
}
<h:commandButton title="#{msg.ttUnavailablePlant}" immediate="true"
image="/resources/img/stop.png" actionListener="#{assortiment.markAsUnavailable}">
<an:confirm render="#{assortiment.dirty}" message="#{msg.confirmUnavailable}"/>
</h:commandButton>
当我删除'an:confirm ....'时,不会重新加载bean。 很高兴知道facesbehavior是否可以与viewcoped bean合作使用。