JSF2.0 h:commandlink action属性未绑定到方法

时间:2012-10-12 13:01:35

标签: java jsf-2 jboss-weld

我有一个在前端运行JSF2.0的应用程序。在后端而不是使用托管bean我使用焊接的命名bean。有问题的bean是带注释的@Named @Singleton @Startup,是一个EJB Singleton。 bean获得顶级类别以填充前端。在前端的顶级导航中,我有类似的代码

<h:dataTable var="items" value="#{topCategorySingleton.topCat}">
<h:column>
<h:commandLink class="menu-link" action="#{categoryBackingBean.category}">
<f:setPropertyActionListener target="#{categoryBackingBean.catID}" value="#{item.sku}" />
 <h:outputText value="#{item.title}" />
 </h:commandLink>
 </h:column>
 </h:dataTable>

当此代码运行时,我收到错误说明 javax.servlet.ServletException:类&#39; com.webintel.backingbeans.org $ jboss $ weld $ bean-testing-SessionBean-CategoryBackingBean _ $$ _ WeldProxy&#39;没有属性&#39;类别&#39;。

我认为commandLink的action属性应该绑定到bean的方法,而不是属性?有人有什么想法吗?

启动时启动@Singleton,代码如下:

@Singleton
@Named
@Startup
@ConcurrencyManagement(CONTAINER)
public class TopCategorySingleton{
  public TopCategoryStingleton(){}
  private int sku;
  private String title;
  private List<TopCategorySingleton> topCat;
....getters and setters
  public void getTop_Cat(){
   ....logic
   setTopCat(List<TopCateogrySingleton>);
  }

然后,支持bean代码如下所示:

@Stateless
@Named
@RequestScoped
public class CategoryBackingBean{
  public CategoryBackingBean(){}
  private int catID;
  ....getters and setters
  public String category(){
    ...logic
    if(!true){
      return "error";
    }
    return "success";
  }

由于某种原因,它仍未将categoryBackingBean.category绑定到该方法。我在使用Java 6的Glassfish 3.1服务器上运行此应用程序。提前感谢您的帮助。

0 个答案:

没有答案