使用JSF处理表单验证

本文介绍了一个使用JavaServer Faces (JSF) 技术实现的简单登录页面示例。示例包括了web.xml配置文件、face-config.xml配置文件、JavaBean、index.jsp以及welcome.jsp等部分。验证过程中确保用户名和密码的正确性,并对密码长度进行了限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns
="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
    
<servlet>
      
<servlet-name>Faces Servlet</servlet-name>
      
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet-mapping>
      
<servlet-name>Faces Servlet</servlet-name>
      
<url-pattern>*.faces</url-pattern>
    
</servlet-mapping>
  
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
  
</welcome-file-list>
</web-app>

 

face-config.xml

 

<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd"
>
<faces-config>
   
<application>
   
     
<locale-config>
       
<default-locale>en</default-locale>
       
<supported-locale>zh_CN</supported-locale>
     
</locale-config>
   
</application>
  
<navigation-rule>
     
<from-view-id>/index.jsp</from-view-id>
     
<navigation-case>
           
<from-outcome>success</from-outcome>
           
<to-view-id>/welcome.jsp</to-view-id>
     
</navigation-case>
      
<navigation-case>
           
<from-outcome>failure</from-outcome>
           
<to-view-id>/index.jsp</to-view-id>
     
</navigation-case>
   
</navigation-rule>
   
   
<managed-bean>
       
<managed-bean-name>user</managed-bean-name>
       
<managed-bean-class>test.UserBean</managed-bean-class>
       
<managed-bean-scope>session</managed-bean-scope> 
   
</managed-bean>
</faces-config>

 

JavaBean:

package test;

public class UserBean {
   
private String username;
   
private String password;
   
private String errorMessage;
   
private String locale;
   
public String getLocale() {
    
return locale;
}

public void setLocale(String locale) {
    
this.locale = locale;
}

public String verify() {
       
if(!username.equals("admin"||
                
!password.equals("123456")) {
           errorMessage 
= "名称或密码错误";
           
return "failure";
       }

       
else {
           
return "success";
       }

       }


public String getPassword() {
    
return password;
}


public void setPassword(String password) {
    
this.password = password;
}


public String getErrorMessage() {
    
return errorMessage;
}


public void setErrorMessage(String errorMessage) {
    
this.errorMessage = errorMessage;
}


public String getUsername() {
    
return username;
}


public void setUsername(String username) {
    
this.username = username;
}

}

 

index.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
  
</head>
  
<body>
    
<f:view>
        
<h:form>
            
<h:selectOneRadio value="#{user.locale}">
                
<f:selectItem itemValue="zh_CN" itemLabel="中国" />
                
<f:selectItem itemValue="en" itemLabel="英国" />
            
</h:selectOneRadio>
         
<h:messages layout="table" style="color:red"/>    
         
<h3>请输入您的名称</h3>
         
<font color="red"><h:outputText value="#{user.errorMessage}"/><p></font>
          名称: 
<h:inputText value="#{user.username}" required="true" requiredMessage="名称必须输入"/><p>
          密码: 
<h:inputSecret value="#{user.password}" required="true" requiredMessage="密码必须输入" validatorMessage="长度必须大于6位">
                 
<f:validateLength minimum="6"/>
              
</h:inputSecret><p>
         
<h:commandButton value="送出" action="#{user.verify}"/>
       
</h:form>
    
</f:view>
  
</body>
</html>

 

welcome.jsp

 

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
   
    
   
  
</head>
  
  
<body>
    
<f:view>
      
<h:outputText value="#{user.username}"/> 您好! <h:outputText value="#{user.locale}"/> 您好!
      
<h3>欢迎使用 JavaServer Faces!</h3>
    
</f:view>
  
</body>
</html>

 

要求用户名,密码必须输入,且密码不能好于6位

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值