Struts2学习笔记3 ――基于AJAX的表单验证

本文介绍如何在Struts2框架中实现基于AJAX的表单验证。通过安装DWR并配置web.xml、dwr.xml等文件,结合Struts2验证框架,实现前端实时反馈表单错误信息。

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

Struts2学习笔记3 ――基于AJAX的表单验证

基于AJAX的表单验证需要先安装DWR,在http://getahead.ltd.uk/dwr/download上下载DWR 2.0 RC 2,将dwr.jar拷贝到WEB-INF/lib目录下

1 .修改 web.xml ,另入 DWR 支持:
< servlet >
        
< servlet-name > dwr </ servlet-name >
        
< servlet-class >
            org.directwebremoting.servlet.DwrServlet
        
</ servlet-class >
        
< init-param >
            
< param-name > debug </ param-name >
            
< param-value > true </ param-value >
        
</ init-param >
    
</ servlet >
    
< servlet-mapping >
        
< servlet-name > dwr </ servlet-name >
        
< url-pattern > /dwr/* </ url-pattern >
    
</ servlet-mapping >

2 .在 WEB-INF 目录下新建 dwr.xml 文件:
<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.ltd.uk/dwr/dwr20.dtd"
>
< dwr >
    
< allow >
        
< create  javascript ="validator"  creator ="new" >
            
< param  name ="class"
                value
="org.apache.struts2.validators.DWRValidator"   />
        
</ create >
        
< convert  converter ="bean"
            match
="com.opensymphony.xwork2.ValidationAwareSupport"   />
    
</ allow >

    
< signatures >
        
<![CDATA[
        import java.util.Map;
        import org.apache.struts2.validators.DWRValidator;

        DWRValidator.doPost(String, String, Map<String, String>);
        
]]>
    
</ signatures >
</ dwr >

3 .在 login.jsp 中添加 AJAX 验证支持,修改后的 login.jsp 内容如下:
<% @ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<% @taglib prefix="s" uri="/struts-tags" %>
< html >
    
< head >
        
< s:head  theme ="ajax"   />
        
< title > 登录页面 </ title >
    
</ head >
    
< body >
        
< s:form  action ="login"  method ="post"  theme ="ajax" >
            
< s:textfield  label ="用户名"  name ="username"   />
            
< s:textfield  label ="密码"  name ="password"   />
            
< s:submit  value ="登录"   />
        
</ s:form >
    
</ body >
</ html >

注意上面的<s:head theme="ajax" />,它为页面使用AJAX验证准备相应的Scripts代码。

    4.配置validation.xml:

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE validators PUBLIC 
"-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>
< validators >
    
< field  name ="username" >
        
< field-validator  type ="requiredstring" >
            
< message > 请输入用户名 </ message >
        
</ field-validator >
    
</ field >

    
< field  name ="password" >
        
< field-validator  type ="requiredstring" >
            
< message > 请输入密码 </ message >
        
</ field-validator >
        
< field-validator  type ="stringlength" >
            
< param  name ="minLength" > 6 </ param >
            
< param  name ="maxLength" > 10 </ param >
            
< message > 密码长度只能在 ${minLength} 和 ${maxLength} 之间. </ message >
        
</ field-validator >
    
</ field >
</ validators >

这样就为JSP页面提供了基于AJAX的验证。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值