2011-11-24 186 views
3

我寫了一個簡單的JSF表單。問題是有一個我找不到的錯誤。當我打開主頁面並輸入用戶名和密碼時,頁面必須將我重定向到下一頁,但這不會發生。你能幫我找到我的錯誤嗎?表單未提交

這是主要的登錄JSF頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns:h="http://java.sun.com/jsf/html"> 
    <head> 
     <title>Login</title> 
     <link rel="stylesheet" type="text/css" href="resources/css/style.css" /> 
     <script src="resources/js/cufon-yui.js" type="text/javascript"></script> 
     <script src="resources/js/ChunkFive_400.font.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
      Cufon.replace('h1',{ textShadow: '1px 1px #fff'}); 
      Cufon.replace('h2',{ textShadow: '1px 1px #fff'}); 
      Cufon.replace('h3',{ textShadow: '0px 1px #000'}); 
      Cufon.replace('.back'); 
     </script> 
    </head> 
    <body> 
     <div class="wrapper"> 
      <div class="content"> 
       <div id="form_wrapper" class="form_wrapper">      
        <form class="login active"> 
         <h3><center><img src="resources/images/title.png"/></center></h3> 
         <div> 
          <label>Username:</label> 
          <h:inputText value="#{loginController.user}"/> 
          <span class="error">This is an error</span> 
         </div> 
         <div> 
          <label>Password:</label> 
          <h:inputSecret value="#{loginController.password}"/> 
          <span class="error">This is an error</span> 
         </div> 
         <div class="bottom">  
                 <h:commandButton label="Login" value="Login" action="#{loginController.user_compare}"/> 
          <div class="clear"></div> 
         </div> 
        </form>     
       </div> 
      </div>   
     </div> 
    </body> 
</html> 

這是託管bean

/** Bean for checking users and passwords. 
If the user enters the correct username and password 
the user will be redirected to main.xhtml 
If not the page will refresh. */ 

package com.dx.sr_57; 

import java.io.Serializable; 
import javax.enterprise.context.SessionScoped; 
import javax.inject.Named; 


@Named("loginController") 
@SessionScoped 
public class user_check implements Serializable { 
    private String user; 
    private String password; 

     public user_check(){ 
     } 

     public user_check(String user, String password){ 
      super(); 
      this.user = user; 
      this.password = password; 
     } 



     /** get the content of the variables from the JSF Login page */ 

     public String setUser(String newValue) { 
      user = newValue; 
      return user; 
     } 

     public String getUser(){ 
      return user;  
     } 

     public String setPassword(String newValue) { 
      password = newValue; 
      return password; 
     } 

     public String getPassword(){ 
      return password; 
     } 

     public String user_compare() {   
      return "success";   
     } 
} 

回答

4

你需要爲了得到JSF投入使用<h:form>組件和命令工作。

因此,通過

<h:form styleClass="login active"> 
    ... 
</h:form> 

您還需要修復您的制定者是fullworthy制定者更換

<form class="login active"> 
    ... 
</form> 

,否則你可能會面臨一個PropertyNotFoundException

因此,通過

public void setUser(String newValue) { 
     user = newValue; 
    } 

    public void setPassword(String newValue) { 
     password = newValue; 
    } 

無關更換

public String setUser(String newValue) { 
     user = newValue; 
     return user; 
    } 

    public String setPassword(String newValue) { 
     password = newValue; 
     return password; 
    } 

到具體問題,HTML <center>標籤棄用自1998年以來和無效的XHTML嚴格。去掉它。您需要在<img>上設置CSS text-align: center

+0

它的工作原理!謝謝! –