JSF - Wie formatiere ich meine Globale Nachrichten, in <h:Nachrichten> in einer visuell ansprechenden Art und Weise?

Ich bin nicht allzu vertraut mit der Verwendung der <h:messages> element in JSF. Was ich versuche zu tun ist, verwenden Sie es, um eine Liste der globalen Nachrichten von unterschiedlichem Schweregrad, die generiert werden, durch eine Methode in meiner backing-bean. Damit die Nachrichten in der FacesContext ist nicht zu viel von einem problem, und mein code ist entlang dieser Linien:

FacesMessage message;
FacesContext context = 
    FacesContext.getCurrentInstance();
message = new FacesMessage(
    FacesMessage.SEVERITY_INFO,
    "test message summary 1",
    "test message detail 1");
context.addMessage(null, message);
message = new FacesMessage(
    FacesMessage.SEVERITY_WARN,
    "test message summary 2",
    "test message detail 2");
context.addMessage(null, message);
message = new FacesMessage(
    FacesMessage.SEVERITY_ERROR,
    "test message summary 3",
    "test message detail 3");
context.addMessage(null, message);
//add more messages...

Dass alles Prima funktioniert. Mein problem ist mit versuchen, um den Ausgang des <h:messages> tag gut Aussehen auf der Seite. Hier ist der relevante Teil meiner JSP Datei:

<h:panelGrid border="1" columns="1" id="messagesPanelGrid">
    <h:messages 
        id="messagesOutput"
        showSummary="true"
        showDetail="true" 
        layout="table"
        infoClass="info-message"
        warnClass="warn-message"
        errorClass="error-message"
        fatalClass="fatal-message" 
        globalOnly="true" />
</h:panelGrid>

Diese konsequent sieht aus wie Mist auf der Seite. Ich bin mit einem externen CSS-stylesheet zu definieren styling-Kurse. Ich habe versucht, mit layout="list" aber dann die Liste der Elemente erstrecken sich über die ganze Seite und machen jeden block styling schlecht Aussehen, so wechselte ich zu layout="table". Ich rahmte die <h:messages> innerhalb einer <h:panelGrid> so hätte ich einige block-level-element, das konnte ich anwenden von Stilen auf. Es immer noch nicht besonders schön Aussehen.

Was ich bekommen jetzt:

<table border="1" id="myForm:messagesOutput">
    <tr><td class="error-message"><span>no port name match Could not match reported port name XXXX to a known port for vessel VESSEL A</span></td></tr>
    <tr><td class="error-message"><span>no port name match Could not match reported port name YYYY to a known port for vessel VESSEL B</span></td></tr>
    <tr><td class="error-message"><span>no port name match Could not match reported port name YYYY to a known port for vessel VESSEL C</span></td></tr>
    <tr><td class="error-message"><span>no port name match Could not match reported port name ZZZZ to a known port for vessel VESSEL D</span></td></tr>
    <tr><td class="warn-message"><span>arrival date missing No arrival date provided for vessel VESSEL B</span></td></tr>
</table>

Was ich versuche zu bekommen:

<table border="1" id="myForm:messagesOutput" class="myMessagesTableClass">
    <thead><tr"><td>SUMMARY</td><td>DETAIL</td></tr></thead>
    <tr><td class="error-message-summary"><span>no port name match</span></td><td class="error-message-detail"><span>Could not match reported port name XXXX to a known port for vessel VESSEL A</span></td></tr>
    <tr><td class="error-message-summary"><span>no port name match</span></td><td class="error-message-detail"><span>Could not match reported port name YYYY to a known port for vessel VESSEL B</span></td></tr>
    <tr><td class="error-message-summary"><span>no port name match</span></td><td class="error-message-detail"><span>Could not match reported port name YYYY to a known port for vessel VESSEL C</span></td></tr>
    <tr><td class="error-message-summary"><span>no port name match</span></td><td class="error-message-detail"><span>Could not match reported port name ZZZZ to a known port for vessel VESSEL D</span></td></tr>
    <tr><td class="warn-message-summary"><span>arrival date missing</span></td><td class="warn-message-detail"><span>No arrival date provided for vessel VESSEL B</span></td></tr>
</table>
  • - Nachrichten sind noch in einer Tabelle, aber die "übersicht" und "detail" sind in separaten Spalten
  • Generierten Tabelle eine CSS-Klasse direkt zugeordnet
  • Die "Zusammenfassung" und "Details" werden Teile der Nachricht über separate style-Klassen
  • SCHÖN ZU HABEN: tabellenkopfzeile

SCREENSHOT:

JSF - Wie formatiere ich meine Globale Nachrichten, in <h:Nachrichten> in einer visuell ansprechenden Art und Weise?

Hat jemand da draußen die Arbeit mit <h:messages> - tags und haben einige Ideen, wie ich diese erreichen können?

Ich bin mir nicht sicher, wenn es darauf ankommt, für diese Frage, aber ich bin mit MyFaces 1.2. Ich kann nicht ein upgrade auf 2.x im moment.

Es ist eine Frage des CSS. Ihre eigentliche problem ist wahrscheinlich einfach schlechte CSS-Fähigkeiten. Ohne zu wissen, wie Sie würde es Aussehen, ist es schwer, eine Antwort zu geben. Poste bitte ein Bild/screenshot, wie es sollte (nicht) Aussehen.
Stimmt, ich bin kein CSS-Experte. Ich werde versuchen, Sie zu verspotten, etwas HTML-Code zu veranschaulichen mein problem und hängen Sie an die Frage. Ich nicht überall, um die Gastgeber einen screenshot.
Sie können Bilder hochladen hier. Klicken Sie auf die Bild-Schaltfläche in der editor-Symbolleiste auf wählen Sie das lokale Bild-Datei.
Getan. Ich habe nie bemerkt, der screenshot upload-button vor.

InformationsquelleAutor Jim Tough | 2010-09-14

Schreibe einen Kommentar