2
我是JSF編程的初學者,所以我有一個簡單的問題。如何使命令按鈕在JSF 2.0中的窗體外工作
我有以下JSF文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" 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:head>
<title>Insert Title Here</title>
</h:head>
<body>
<h:form>
<h:panelGrid columns="3">
/* Here I take the username */
<h:outputLabel for="username">Username</h:outputLabel>
<h:inputText id="username" value="#{register.user.username}"
required="true" requiredMessage="Enter username">
<f:ajax event="blur" render="usernameMessage" />
</h:inputText>
<h:message id="usernameMessage" for="username" />
/* Here I take the password */
<h:outputLabel for="password">Password</h:outputLabel>
<h:inputSecret id="password" value="#{register.user.password}"
required="true" redisplay="true" requiredMessage="Enter password">
<f:ajax event="blur" render="passwordMessage" />
</h:inputSecret>
<h:message id="passwordMessage" for="password" />
/* Here I take the email */
<h:outputLabel for="email">Email</h:outputLabel>
<h:inputText id="email" value="#{register.user.email}"
required="true" requiredMessage="Enter email">
<f:ajax event="blur" render="emailMessage" />
</h:inputText>
<h:message id="emailMessage" for="email" />
/* And these are my 3 command buttons, and they are working only when the username, password and email are filled in. */
<h:panelGroup>
<h:commandButton value="Register" action="#{register.submit}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
<h:commandButton value="setDB" action="#{register.setDB}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
<h:commandButton value="getDB" action="#{register.getDB}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
<h:commandButton value="reset" action="#{register.reset}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:panelGroup>
<h:messages globalOnly="true" layout="table" />
</h:panelGrid>
</h:form>
/* And this is the button that I want to work without the need to fill in the username, password and email */
<h:panelGroup rendered="#{register.user.ini!=true}">
<h3>Result</h3>
<h:commandButton value="getDB" action="#{register.getDB}" />
</h:panelGroup>
</body>
</html>
所以我的問題是,如何讓下面的命令按鈕的工作:
<h:panelGroup rendered="#{register.user.ini!=true}">
<h3>Result</h3>
<h:commandButton value="getDB" action="#{register.getDB}" />
</h:panelGroup>
當我啓動應用程序它不會出現。我只想獲取數據庫信息,而不需要填寫以下字段:)其他按鈕在窗體中,只有當字段的用戶名,密碼和電子郵件內有內容時才能使用。此代碼既不會產生異常也不會產生錯誤,但該按鈕不起作用(表單外部的那個)。
'h:commandLink'會做。 –