2014-03-19 114 views
0

我有一个问题反过来引起很多头痛。我需要动态创建链接到JSF actionListener的按钮/图像。下面是代码:h:commandLink没有按预期工作

HTML:

<h:form> 
    <div class="carousel-container"> 
    <div id="carousel"> 
     <h:outputText value="#{courseBean.course}" escape="false"/> 
    </div> 
    </div> 
</h:form> 

什么courseBean.course得到的是重写的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只打印courseID到控制台没什么大不了。

感谢您抽出宝贵的时间:)

回答

0

这种做法是错误的,如果你做的“查看源文件”,你会看到在你的页面的源代码的<h:commandLink(因为它不会被JSF生命周期在处理所有),而如果你在你的XHTML页面有一个<h:commandLink生成的HTML源将包含一个<a href....>元素

你的你原来的目标更好地反思,并要求就如何实现这一目标的一个问题...