在JSF中条件显示包含页面时无法调用bean方法

在JSF中条件显示包含页面时无法调用bean方法,jsf,Jsf,我有主页,仪表板页面和addfield页面。主页上有用于仪表板的链接,仪表板上有用于添加字段的链接。单击“命令链接”时,此功能工作正常。 我想在仪表板中显示addfield页面,在主页中显示仪表板页面。当我使用include显示页面时,它包括页面并显示 当我想在单击主页命令链接时显示仪表板页面时,它不起作用 <f:ajax event="action" render="panelid"> dashBoard.java package ims.com.dashboard; impo

我有主页,仪表板页面和addfield页面。主页上有用于仪表板的链接,仪表板上有用于添加字段的链接。单击“命令链接”时,此功能工作正常。 我想在仪表板中显示addfield页面,在主页中显示仪表板页面。当我使用include显示页面时,它包括页面并显示

当我想在单击主页命令链接时显示仪表板页面时,它不起作用

<f:ajax event="action" render="panelid">
dashBoard.java

package ims.com.dashboard;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.view.ViewScoped;


@ManagedBean(name="dashBoard")
@ViewScoped
public class DashBoard implements Serializable {

    @ManagedProperty(value = "#{param.pageName}")
    private String pageName;

    public String showPage() {
        if (pageName == "addField") {
            return "AddField";
        }
    }

    public void setPageName(String pageName) {
        this.pageName = pageName;
    }
}

请添加一些代码,我来看看。为什么添加那么多与实际问题域无关的代码?请考虑将它作为最短的代码来识别/复制相同的问题以获得更好的帮助。我已经删除了一些代码。一些明显的事情:在 StPoGeAd()中,将字符串与<代码> >=(<代码> PaGeNAM= =“HOLD”)进行比较。Home类的方法,该类需要通过
equals()
方法进行比较。同一方法中缺少
return
语句-
showPage()
。在
仪表板
类中重复相同的操作-将字符串与
=
pageName==“addField”
)和缺少的
return
语句进行比较。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:ui="http://java.sun.com/jsf/facelets">
    <ui:composition>
        <h:form>

            <h:panelGrid columns="4" width="100%">

                <h:commandLink action="#{home.showPage}" value="Home">
                    <f:param name="pageName" value="home" />
                    <f:ajax event="action" render="pgdb"/>
                </h:commandLink>
                <h:commandLink action="#{home.showPage}"
                               value="DashBoard">
                    <f:param name="pageName" value="dashBoard" />
                    <f:ajax event="action" render="pgdb"/>
                </h:commandLink>

            </h:panelGrid>
            <h:panelGroup id="pgdb" rendered="#{home.showDashBoard}">
                <ui:include src="/DashBoard.xhtml"/>
            </h:panelGroup>
        </h:form>
    </ui:composition>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:ui="http://java.sun.com/jsf/facelets">

    <h:form>
        <h:panelGrid columns="2">
            <table border="1" width="30%">
                <tr>
                    <h:commandLink action="#{dashBoard.showPage}"
                                   value="Add Field">
                        <f:param name="pageName" value="addField" />
                    </h:commandLink>
                </tr>
            </table>
        </h:panelGrid>
        <ui:include src="AddField.xhtml"/>
    </h:form>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:ui="http://java.sun.com/jsf/facelets">

    <ui:composition>
        <h:form>
            <h:outputText value=FirstName" />
            <h:outputText value="LastName" />
            </h:panelGrid>
        </h:form>
    </ui:composition>
</html>
package ims.com.home;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@ManagedBean(name="home")
@Scope
@Component
public class Home implements Serializable {

    @ManagedProperty(value = "#{param.pageName}")
    private String pageName;

    private boolean showDashBoard = false;

    public boolean isShowDashBoard() {
        return showDashBoard;
    }

    public void setShowDashBoard(boolean showDashBoard) {
        this.showDashBoard = showDashBoard;
    }

    public String showPage() {
        if (pageName == "home") {
            showDashBoard = false;
            return "HomePage";
        }

        if (pageName.equals("dashBoard")) {
            showDashBoard = true;
            return "HomePage";
        }
    }

    public String getPageName() {
        return pageName;
    }

    public void setPageName(String pageName) {
        this.pageName = pageName;
    }
}
package ims.com.dashboard;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.view.ViewScoped;


@ManagedBean(name="dashBoard")
@ViewScoped
public class DashBoard implements Serializable {

    @ManagedProperty(value = "#{param.pageName}")
    private String pageName;

    public String showPage() {
        if (pageName == "addField") {
            return "AddField";
        }
    }

    public void setPageName(String pageName) {
        this.pageName = pageName;
    }
}