我遇到了一个问题,这反过来引起了很多麻烦。我需要动态创建链接到JSF actionListener的按钮/图像。这是代码:
HTML:
<h:form>
<div class="carousel-container">
<div id="carousel">
<h:outputText value="#{courseBean.course}" escape="false"/>
</div>
</div>
</h:form>
courseBean.course获取的是Overriden toString,它返回以下内容:
@Override
public String toString() {
return "<div class=\"carousel-feature\"> "
+ "<h:commandLink id=\"" + courseID + "\" actionListener=\"#{courseBean.getCourseSelected}\">"
+ "<img class=\"carousel-image\" src=\"Images/testButton.jpg\"/>"
+ "<span style=\"display:bloack; position:absolute; top:20px; bottom:20px; left:0; right:0; "
+ "background:white; background:rgba(255, 255, 255, 0.25);\">" + courseName + "</span>"
+ "</h:commandLink> "
+ "<div class=\"carousel-caption\"> "
+ "</div>"
+ "</div>";
}//end method toString
正在渲染HTML并且正在旋转木马中显示图像,但是当单击它时,没有调用actionListener,这就是问题所在。
编辑:actionListener只将consoleID打印到控制台,没有什么重要的。
感谢您抽出宝贵时间:)
答案 0 :(得分:0)
这种方法是错误的,如果你这样做的话,那么#34;查看来源&#34;您将在页面源中看到<h:commandLink
(因为它根本不会被JSF生命周期处理),而如果您的xhtml页面中有<h:commandLink
,则生成的html源将包含<a href....>
元素
你最好重新考虑一下你原来的目标并提出一个如何实现它的问题......