はっきりとしたアプリケーションです。私はメッセージを表示し、メッセージの種類でdivの色を変更するdivを作成したいと思います。jsf divに適用されるcssスタイルをメッセージタイプで変更するにはどうすればよいですか?
<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>
生成するには、私は私のJSFファイルでこのコードを持っている瞬間
メッセージ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要素は、(メッセージタイプの機能にメッセージを表示する方法を変更したいです例:グリーンok;黄色の警告;赤色のエラー)。
この関数によって生成されたメッセージの関数でCSSスタイルをdivにリンクするにはどうすればよいですか?
この質問は奇妙です。答えは "infoClass'、' warnClass'、 'errorClass'、' fatalClass' "です。しかし、あなたはすでにそれを使用しています。私はどこにもCSSが見えませんが、あなたの実際の質問は、CSSを書く方法がわからないということです。 – BalusC
私はCSSをインクルードするのを忘れましたが、メッセージが現時点で生成されたときにはCSSだけがdivに色付けされます。私はエラーの種類に応じてdivの色を選択することができるように探しています – Ersch