如果faces-config.xml中没有导航大小写,请如何禁用命令按钮

时间:2014-09-23 12:21:29

标签: jsf jsf-2 commandbutton faces-config

当faces-config中没有匹配的导航用语时,你知道是否有一个选项可以将commandbutton设置为disabled =“true”?

当时我正在学习JSF编写应用程序。该应用程序包含各种页面。我使用默认模板插入navigatontemplate。

这是我的导航模板

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">


<ui:insert name="navigation">
            <nav>           
                <h:panelGroup>
                <h:form>
                <h:commandButton value="GO BACK" styleClass="button" action="GOBACK"/>
                <h:commandButton value="Reset" pt:type="Reset" styleClass="button" action="RESET"/>
                <h:commandButton value="GO FORWARD" action="GOFORWARD" styleClass="button"/>
                </h:form>
            </h:panelGroup>
            </nav>
    </ui:insert>
</ui:composition>

现在在faces-config中我有一些导航规则,例如:

<navigation-rule>
    <display-name>firstPage.xhtml</display-name>
    <from-view-id>/firstPage.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>GOFORWARD</from-outcome>
        <to-view-id>/secondPage.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

现在我想在用户位于第一页时禁用GOBACK-Button(而faces-config.xml中没有导航规则)。

有人知道怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

我现在找到了一个有效的解决方案:

 <h:commandButton value="GO BACK" styleClass="button" disabled="#{view.viewId=='/firstPage.xhtml'} action="GOBACK"/>

EL-expression view.viewId返回用户正在访问的页面。