对于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