我正在使用以下代码来编辑记录的值。代码工作正常。
<rich:popupPanel header="Edit Company Region" id="editCompanyRegionPane"
domElementAttachment="parent" width="230" height="115">
<h:form>
<h:panelGrid columns="3" id="editCompanyRegionGrid">
<h:inputHidden value="#{CompanyAdminPageModel.editCompanyRegion.companyRegionId}"
id="editcompanyRegionId">
</h:inputHidden>
<h:message for="editcompanyRegionId" />
<h:column>
<h:outputText value="Name " />
<h:inputText value="#{CompanyAdminPageModel.editCompanyRegion.name}"
id="editCompanyRegionName">
</h:inputText>
<h:message for="editCompanyRegionName" />
</h:column>
</h:panelGrid>
<h:commandButton value="Update"
action="#{CompanyAdminPageModel.companyRegionUpdate}" render="table"
oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editCompanyRegionPane')}.hide();}" />
<h:commandButton value="Cancel"
onclick="#{rich:component('editCompanyRegionPane')}.hide(); return false;" />
</h:form>
</rich:popupPanel>
我希望在更新数据库中的值后在同一页面中显示一条消息。例如:当我点击更新按钮然后它将从Bean类调用方法,然后更新数据库中的值,关闭弹出面板后,它将在同一页面内显示一条消息(如:已成功更新)。
请帮助。
我使用了以下java代码:
public String updateUser(Long usrId, String firstName, String lastName,
String loginName, String emailAddr) {
AllCompanyDAO aDAO = new AllCompanyDAO();
FacesContext.getCurrentInstance().addMessage("test", new javax.faces.application.FacesMessage("Success"));
return aDAO.userUpdate(usrId, firstName, lastName, loginName, emailAddr);
}
并遵循jsf代码:
<div class="content container">
<div style="padding-left:220px;">
To see the relationships between users and regions <a href="#{appPath}/app/insertion/userRegionInfo.faces" >click here</a> <br/>
<h:message for="test"></h:message>
</div>
</div>
答案 0 :(得分:0)
在companyRegionUpdate()
结束时,添加:
消息
FacesContext.getCurrentInstance().addMessage("test", new FacesMessage("Success"));
其中 test 是对<h:message>
JSF 组件的绝对引用。
<h:commandButton>
,添加Ajax支持如
<h:commandButton value="Update" >
<a4j:support oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editCompanyRegionPane')}.hide();}" action="#{CompanyAdminPageModel.companyRegionUpdate}" event="onclick" reRender="test, table" />
</h:commandButton>
其中 test 是对<h:message>
JSF 组件的绝对引用。
您可以简单地使用具有ajax支持的<h:commandButton>
组件,而不是向<a4j:commandButton >
添加ajax支持。
答案 1 :(得分:0)
我使用以下代码解决了我的问题。 1.在java。中的companyRegionUpdate方法中使用以下代码。
FacesContext.getCurrentInstance().addMessage("test", new javax.faces.application.FacesMessage("Successful"));
然后在我想要的div中使用<h:messages />
。 <h:messages />
与<h:message />
不同。就我而言,<h:messages />
有效。
就是这样。 : - )