2009-06-22 5 views
0

Ich möchte Verbindungen unter Verwendung der Datenbankspalten herstellen. Ich habe eine Backbohne, wo ich mich mit der Datenbank verbinde. Es gibt kein Problem mit der Verbindung und auch kein Problem mit den Linknamen. Ich kann meine Links in meinem Browser sehen. Ich möchte onclick Funktion verwenden und das ist genau dort, wo das Problem beginnt. Wie kann ich EL in onclick verwenden oder verwenden?JSF, wie man EL in onclick benutzt

Ein kleines Beispiel:

<h:dataTable rows="7" value="#{frontSiteMenu.links}" var="row" 
    styleClass="sitemenu" width="200"> 
    <h:column> 
     <a href="#" onclick="dispNewsGroup('${row.newsGroupId}')"><h:outputText value='#{row.newsGroup}' /></a> 
    </h:column> 
</h:dataTable> 

Dank.

Antwort

5

Ich nehme an, Sie verwenden JSPs?

Verwenden h:outputLink anstelle eines ein-Tag und der Ausdruck ändern verwenden Sie das Zeichen #:

<h:outputLink value="#" onclick="dispNewsGroup('#{row.newsGroupId}')"> 
    <h:outputText value='#{row.newsGroup}' /> 
</h:outputLink> 

Das ungetestet ist, sollte aber zu schließen, was Sie wollen.

Die Spezifikation sagt dieses über # vs $:

... vereinbarungs die J2EE Web-Tier-Spezifikationen verwenden, um die $ {expr} Konstrukt für die sofortige Auswertung und die # {expr} konstruieren zur verzögerten Auswertung.

In einer Wiederholungssteuerung, bei der sich die zugrunde liegenden Werte ändern, ist es daher wünschenswert, eine verzögerte Auswertung zu verwenden.

Es gibt auch Probleme mit der Verwendung von Nicht-JSF-Tags als untergeordnete Elemente einiger JSF-Steuerelemente. Daher sollten Sie möglichst JSF-Steuerelemente verwenden (obwohl es ein f:verbatim-Tag gibt). Viele dieser Probleme verschwinden, wenn Sie zu der neueren Facelets-Ansichtstechnologie wechseln.