【问题标题】:JSF, how to use EL in onclickJSF,如何在 onclick 中使用 EL
【发布时间】:2009-06-22 09:01:16
【问题描述】:

我想使用数据库列创建链接。我有一个连接到数据库的支持 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>

谢谢。

【问题讨论】:

    标签: jsf onclick el


    【解决方案1】:

    我认为您正在使用 JSP?

    使用h:outputLink 代替a 标记并使用# 字符更改表达式:

    <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 视图技术,这些问题中的许多问题都会迎刃而解。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2016-03-29
      • 1970-01-01
      • 2012-01-06
      • 2011-09-11
      • 2013-09-02
      • 2010-12-28
      • 2013-07-03
      相关资源
      最近更新 更多