0

データベースの列を使用してリンクを作成したい。データベースに接続しているバッキングBeanがあります。接続に問題はなく、リンク名にも問題はありません。ブラウザにリンクが表示されます。onclick関数を使いたいのですが、そこから問題が始まります。onclickでELを使用するにはどうすればよいですか、または使用できますか?

ちょっとした例:

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

ありがとう。

4

1 に答える 1

5

JSPを使用していると思いますか?

aタグの代わりにh:outputLinkを使用し、式を変更して # 文字を使用します。

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

それはテストされていませんが、あなたが望むものに近いはずです。

仕様では、# vs $ について次のように述べています。

...慣例により、J2EE Web 層の仕様では、即時評価に ${expr} 構造を使用し、遅延評価に #{expr} 構造を使用します。

そのため、基になる値が変化する繰り返しコントロールでは、遅延評価を使用することが望ましいです。

非 JSF タグを一部の JSF コントロールの子として使用することにも問題があるため、可能な限り JSF コントロールを使用することをお勧めします ( f:verbatimタグはありますが)。これらの問題の多くは、新しい Facelets ビュー テクノロジに移行すると解消されます。

于 2009-06-22T09:23:00.333 に答える