對於crud應用程序我想創建一個div,我想顯示一條消息並使用消息類型更改div的顏色。如何用一種消息更改應用於jsf div的css樣式?
目前,我有這樣的代碼在我的JSF文件:
<ui:define name="msg">
<h:messages globalOnly="true" errorClass="err" warnClass="warn" infoClass="info"></h:messages>
<h:messages globalOnly="false" errorClass="err" warnClass="warn" infoClass="info"></h:messages>
我的DIV是一個模板XHTML定義:
<div class="alert alert-dismissible alert-danger" id="msg2">
<ui:insert name="msg"></ui:insert>
要生成消息我在jsfUtil.java中使用了一些函數:
public class JsfUtil {
public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne){
int size = selectOne ? entities.size() + 1 : entities.size();
SelectItem[] items = new SelectItem[size];
int i = 0;
if (selectOne){
items[0] = new SelectItem("", "---");
i++;
}
for (Object x : entities){
items[i++] = new SelectItem(x, x.toString());
}
return items;
}
public static void addErrorMessage(Exception ex, String defaultMsg) {
String msg = ex.getLocalizedMessage();
if (msg != null && msg.length() > 0) {
addErrorMessage(msg);
} else {
addErrorMessage(defaultMsg);
}
}
public static void addErrorMessages(List<String> messages) {
for (String message : messages) {
addErrorMessage(message);
}
}
public static void addErrorMessage(String msg) {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}
public static void addSuccessMessage(String msg) {
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg);
FacesContext.getCurrentInstance().addMessage("successInfo", facesMsg);
}
public static String getRequestParameter(String key) {
return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(key);
}
public static Object getObjectFromRequestParameter(String requestParameterName, Converter converter, UIComponent component) {
String theId = JsfUtil.getRequestParameter(requestParameterName);
return converter.getAsObject(FacesContext.getCurrentInstance(), component, theId);
}
}
的函數實施例誰產生消息:
public String doUpdate() {
try {
modelFacade.edit(current);
items = new ListDataModel(modelFacade.find(new ModelSearch()));
current = (Model) getItems().getRowData();
JsfUtil.addSuccessMessage("Mise à jour Executée");
return "Model.xhtml";
} catch (Exception e) {
return null;
}
}
此時所有消息被顯示成在div,但我想改變在div如何在消息類型的函數顯示該消息(例如:綠色好的;黃色警告;紅色錯誤)。
如何在本函數生成的消息函數中將css樣式鏈接到我的div?
這個問題很奇怪。答案是「使用'infoClass','warnClass','errorClass','fatalClass'」。但是你已經在使用它了。儘管我看不到CSS,但我認爲你的實際問題是你不知道如何爲此編寫CSS? – BalusC
我忘了包括css,但是css只在當前生成消息時纔給div打上顏色。我期待能夠選擇div的顏色取決於錯誤的類型 – Ersch