2013-03-04 22 views
0

我正在嘗試編寫一些「表達式語言」代碼。目前,在(1)下面調用greetController.greet方法,如果用戶名和密碼匹配,則返回一個字符串。我想要做的是,如果返回的字符串是一個特定的值,而是加載另一個網頁。請有人可以告訴我如何可以這樣做事先加載成功密碼檢查的新網頁

感謝

<!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:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 

<ui:composition template="template.xhtml"> 
    <ui:define name="content"> 
     <h:messages /> 
     <h:form id="greetForm"> 
      <h:panelGrid columns="3"> 
       <h:outputLabel for="username">Enter username:</h:outputLabel> 
       <h:inputText id="username" 
        value="#{greetController.username}" /> 
       <br /> 
       <h:outputLabel for="password">Enter password:</h:outputLabel> 
       <h:inputText id="password" 
        value="#{greetController.password}" /> 
       <h:message for="username" /> 
      </h:panelGrid> 
      <h:commandButton id="greet" value="Login" 
       **action="#{greetController.greet}" />** //(1) 
     </h:form> 
     **<h:outputText value="#{greetController.greeting}"** //(2) 
      rendered="#{not empty greetController.greeting}" /> 
     <br /> 
     <h:link outcome="/create.xhtml" value="Add a new user" /> 
    </ui:define> 
</ui:composition> 
</html> 
+0

關於'success'你想在瀏覽器的'New tab'中打開嗎? – SRy 2013-03-04 22:29:11

回答

1

我的回答假設這個登錄表單是/app/login.xhtml,並且要加載另一個網頁(比如/app/home.xhtml)如果返回的字符串是一個值(比如成功):

對於JSF2

如果您正在使用JSF2,你可以簡單地從你的bean

public String login() 
{ 
    // check user password... 
    return "/app/home.xhtml" 
    // this will work without faces-config.xml entry using JSF2 
} 

對於JSF1或JSF2返回下一個頁面的URL

只需將此條目添加到您的faces-config.xml文件。

<navigation-rule> 
     <from-view-id>/app/login.xhtml</from-view-id> 
     <navigation-case> 
      <from-outcome>success</from-outcome> 
      <to-view-id>/app/home.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 

更多信息 你提的問題是非常基本的。我建議遵循關於JSF的初級水平教程。例如:http://www.mkyong.com/tutorials/jsf-2-0-tutorials/

+0

我猜想OP可能希望在成功的新標籤中打開 – SRy 2013-03-04 22:23:32

+0

無需在新標籤頁中打開球員。謝謝阿馬爾。我會試一試,讓你知道它是如何發展的 – 2013-03-04 22:27:22