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?

使用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 视图技术,其中的许多问题都会消失。

于 2009-06-22T09:23:00.333 回答