2011-11-24 156 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

它的工作原理!谢谢! –