JSF按钮不会在托管bean中调用方法

时间:2013-06-01 20:59:06

标签: jsf primefaces

我有一个视图和一个bean,这是我的问题?我尝试做一些jsf导航?并添加返回导航链接的方法?但当我点击按钮它发送请求但方法永远不会被调用。我想我犯了很简单的错误,但无法理解请帮助我的地方。

这是我的观看代码:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets">

<ui:composition template="include/template/Layout.xhtml">
    <ui:define name="body">
        <h:outputText value="Test text"/>
        <h:outputText value="#{navigationBean.test}"/>
        <div/>
        <p:commandLink value="About Page" action="#{navigationBean.goToAbout}"/>
    </ui:define>
</ui:composition>

</html>

我们的bean代码:

@ManagedBean(name = "navigationBean")
@SessionScoped
public class NavigationBean implements Serializable {

    public String goToAbout(){
        return "About?faces-redirect=true";
    }

    public  String getTest(){
        return "test";
    }

}

这是我的输出页面:

Test texttest
About Page

1 个答案:

答案 0 :(得分:5)

我认为此处的错误就像您说的那样简单,您没有在页面中定义表单,请尝试:

<h:form>
  <h:outputText value="Test text"/>
  <h:outputText value="#{navigationBean.test}"/>
  <div/>
  <p:commandLink value="About Page" action="#{navigationBean.goToAbout}"/>
</h:form>