從WAS6.1 + JSF1.1 + richfaces.3.1.5遷移到WAS7 + JSF1.2 + facelets1.1.14 + richfaces3.3.3。JSF1.2消息未呈現
即使調試facescontext.getMessages()包含消息,錯誤/狀態消息也不會使用h:消息進行呈現。
在提交表單時,我正在驗證輸入。如果驗證失敗,我將添加一個錯誤消息給facescontext。它可以用於多個輸入。每個錯誤味精添加到FacesContext中
FacesMessage message = new FacesMessage();
message.setDetail(msg);
message.setSummary(msg);
message.setSeverity(FacesMessage.SEVERITY_ERROR);
getFacesContext().addMessage(componentID, message);
,並在XHTML我使用^ h顯示它:消息
我是用JSP在WAS6.1和JSF1.1,這用來做工精細 由於
中添加更多細節
我XHTML
<ui:composition template="/template.xhtml">
<ui:define name="content">
<div id="content-nosidebar">
<h:form id="uploadDoc1" >
<h:messages/>
<h:panelGrid id="panelGridContact" headerClass="standardPageHeader" width="100%" cellpadding="5">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Upload Contact Info" />
<hr/>
</h:panelGroup>
</f:facet>
<h:panelGroup id="msgId">
<xyz:errorMessages />
<xyz:statusMessages />
</h:panelGroup>
<h:panelGrid style="text-align: center;font-weight: bold;">
<h:outputText value="Click on Browse button to identify CSV file with contact information for upload."/>
<h:outputText value="File size limit is 10MB."/>
<h:panelGroup>
<rich:fileUpload id="fileuploader" fileUploadListener="#{uploadContactCntrl.onSubmit}"
acceptedTypes="csv" allowFlash="true" listHeight="50" addControlLabel="Select File" uploadControlLabel="Submit" clearControlLabel="clear"/>
</h:panelGroup>
<h:outputText value=" "/>
</h:panelGrid>
</h:panelGrid>
</h:form>
</div>
</ui:define>
</ui:composition>
errorMessages和statusMessages是常見的標籤顯示錯誤(驗證錯誤)和狀態((如更新完成)消息
在該backingbean上如果遇到一個錯誤提交(如「文件未找到「或」數據庫已關閉「我使用來自資源文件的錯誤/狀態消息調用常用方法。 WebDtils.addCustomErrorMessage(「global.error.ContactInfo-DuplicateRecords-UserID」,new String [] {userid,Integer.toString(j + 1)},Constants.RESOURCE_BUNDLE_NAME);}} (「global.error.ContactInfo-successMessage」,new String [] {Integer.toString(noOfRowsInserted)},Constants.RESOURCE_BUNDLE_NAME);
public static void addCustomErrorMessage(String msg, String componentID) {
FacesMessage message = new FacesMessage();
message.setDetail(msg);
message.setSummary(msg);
message.setSeverity(FacesMessage.SEVERITY_ERROR);
getFacesContext().addMessage(componentID, message);
}
public static void addCustomStatusMessage(String msg, String componentID) {
if (errorCodeParameters != null && errorCodeParameters.length > 0)
msg = MessageFormat.format(msg, (Object[])errorCodeParameters);
FacesMessage message = new FacesMessage();
message.setDetail(msg);
message.setSummary(msg);
message.setSeverity(FacesMessage.SEVERITY_INFO);
getFacesContext().addMessage(componentID, message);
}
當輸入字段出現錯誤時,我們還使用相同的標籤來顯示錯誤消息。對於例如名字字段具有無效字符。
正如前面提到的,這是工作的罰款才遷移到JSF1.2
請添加一些信息 – 2011-04-01 19:13:05