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



我有一个视图和一个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

我认为这里的错误就像你说的那样简单,你没有在你的页面中定义一个表单,试试:

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

最新更新