我正在构建一个表单,允许用户输入数据库连接参数。键入参数后
用户可以测试(btnTester)是否可以使用其参数建立连接。
在所有情况下,都会为用户生成一条消息。这是从支持Bean代码失败的连接尝试的示例:
(...)
addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Connection failed.", t.getLocalizedMessage()));
(...)
这是表格代码。我希望该消息出现在p:message中。不幸的是,什么都没有发生。::按钮后没有消息(连接成功与否)显示
即使将global属性设置为false或true,也是如此。
<h:form prependId="false">
(...)
<h:panelGrid>
<!-- Other form components here -->
<f:facet name="footer">
<p:commandButton
id="btnTester"
value="Tester"
actionListener="#{assistantCreationSourcesBean.testerConnexionBase}"
update="msgTester" />
<p:message id="msgTester" for="btnTester" />
</f:facet>
</h:panelGrid>
</h:form>
我想念什么?
最佳答案
我认为您的问题在这里:
addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Connection failed.", t.getLocalizedMessage()));
我假设您正在调用
FacesContext.addMessage()
。第一个参数是组件ID字符串。如果将其设置为null,则将消息强制为全局消息。您已定义的<p:message>
组件设置为for="btnTester"
,因此它将仅显示具有与btnTester组件的ID匹配的组件ID的消息。除了
addMessage()
的Javadoc之外:Link to FacesMessage Javadoc for addMessage() method