JSF,如何在onclick中使用EL

0 jsf el onclick

我想使用数据库列创建链接.我有一个支持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>
Run Code Online (Sandbox Code Playgroud)

谢谢.

McD*_*ell 5

我认为你使用的是JSP?

使用h:outputLink而不是a标签,并使用#字符更改表达式:

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

这是未经测试的,但应该接近你想要的.

该规范说明了#vs $:

...按照惯例,J2EE Web层规范使用$ {expr}构造进行即时评估,使用#{expr}构造进行延迟评估.

因此,在基础值发生变化的重复控制中,需要使用延迟评估.

使用非JSF标记作为某些JSF控件的子代也存在问题,因此最好尽可能坚持使用JSF控件(尽管有一个f:verbatim标记).如果您转向更新的Facelets视图技术,其中许多问题就会消失.