我找不到任何资源可以回答我为什么会遇到此错误:
oncomplete="#{MyBacking.oError ? #{rich:component('oErrorPanel')}.show() : return false;}"
在富豪a4j:commandButton
中。oError 指的是我的 bean 中称为 isOError 的方法。
我收到错误
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
org.apache.el.parser.ParseException: Encountered " "?" "? "" at line 1, column 30.
Was expecting one of:
"}" ...
"." ...
...
我想说'如果一个方法返回 true,则显示模态面板 A,否则为 false'。非常感谢任何帮助。
编辑 我已经编辑了代码,所以它看起来如下:
<a4j:region id="Cont">
<a4j:form name="Form">
<h:panelGrid columns="2" style="padding: 2px;">
<h:outputText value="Old password " />
<h:inputSecret id="FormOldP" value="#{MyBacking.dbOldPwd}" />
<h:outputText value="New password " />
<h:inputSecret id="FormNewP0" value="#{MyBacking.dbNewPwd0}" />
<h:outputText value="Re-enter new password " />
<h:inputSecret id="FormNewP1" value="#{MyBacking.dbNewPwd1}" />
<h:panelGroup>
<a4j:commandButton value="Submit"
action="#{MyBacking.dbPwdChange}"
data="#{MyBacking.oldDbPwdError}"
oncomplete="if(data == true) { rich:component('OldErrorPanel').show(); }"
image="/img/btnSubmit16.png"
reRender="sysMsg,FormCont" />
<a4j:commandButton value="Cancel"
onclick="#{rich:component('MyPanel')}.hide();return false;" />
</h:panelGroup>
</h:panelGrid>
</a4j:form>
</a4j:region>
这编译得很好,但即使布尔值设置为 true(当旧密码不是存储的那个时)面板 MyPanel 仍保留在屏幕上,但错误模式 OldErrorPanel 不会出现。以上对我来说看起来不错。这是java:
public void setOldDbPwdError(boolean b) {
logger.info("setting ldDbPwdErro to "+b);
oldDbPwdError = b;
}
public boolean isOldDbPwdError() {
logger.info("asking for isOldDbPwdError, returning" +oldDbPwdError);
return oldDbPwdError;
}
非常感谢任何进一步的建议。