我想使用数据库列创建链接。我有一个支持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>
感谢。
答案 0 :(得分: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视图技术,其中许多问题就会消失。