`
JavaCrazyer
  • 浏览: 3009168 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Struts温习(5)--ActionForm的validator方法验证

阅读更多

现在这个验证呢,跟第一篇文章的那个还有所不一样,之前的是配置资源文件和配置验证文件的做法,这次呢是在ActionForm里面的一个validator方法中纯手工写代码的方式,实现的登录验证效果一样

login.jsp

 

<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Struts第一个应用:登录验证</title>
  </head>
  
  <body>
    <h3>Struts第一个应用:登录验证</h3><hr/>
    <ul style="color:red">
    <html:messages id="msg">
    	<li>${msg}</li>
    </html:messages>
    </ul>
    <form id="myForm" name="myForm" action="login.do" method="post">
    	<table border="1" width="600px">
    		<tr>
    			<td>登录名</td>
    			<td><input type="text" name="loginname"/></td>
    		</tr>
    		<tr>
    			<td>密码</td>
    			<td><input type="password" name="pwd"/></td>
    		</tr>
    		<tr>
    			<td colspan="2" align="center">
    				<input type="submit" value="提交"/>&nbsp;
    				<input type="reset" value="重置"/>
    			</td>
    		</tr>
    	</table>
    </form>
    
  </body>
</html>

 

 LoginForm.java

 

package com.javacrazyer.web.formbean;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
 * 用来收集客户端提交数据.
 * 要收集数据的属性的名一定要跟请求参数名相同
 * 
 */
public class LoginForm extends ActionForm {
	
	private static final long serialVersionUID = 6619272689058619128L;

	private String loginname;
	
	private String pwd;
	
	@Override
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		System.out.println("*******调用LoginForm的reset方法");
		this.pwd = null;
		this.loginname = null;
		
		super.reset(mapping, request);
	}

	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		System.out.println("调用LoginForm的validate方法------");
		//如果本方法返回null或ActionErrors中没有存放任何对象,表示验证通过。否则验证失败,跳转到对应<action>元素中input属性指定的URL
		ActionErrors errors = new ActionErrors();
		if(this.loginname == null || "".equals(this.loginname)){
			ActionMessage msg = new ActionMessage("用户名不能为空",false);
			errors.add(ActionErrors.GLOBAL_MESSAGE, msg);
		}
		
		if(this.pwd == null || "".equals(this.pwd)){
			ActionMessage msg = new ActionMessage("密码不能为空",false);
			errors.add(ActionErrors.GLOBAL_MESSAGE, msg);
		}
		
		return errors;
	}

	public LoginForm(){
		System.out.println("调用默认构造方法创建出LoginForm的一个实例");
	}

	public String getLoginname() {
		return loginname;
	}

	public void setLoginname(String loginname) {
		this.loginname = loginname;
		System.out.println("调用setLoginname()方法");
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
		System.out.println("调用setPwd()方法");
	}
}

 WEB-INF/struts-config.xml

 

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>

<!-- ================================================ Form Bean Definitions -->
    <form-beans>
		<form-bean name="loginForm" type="com.javacrazyer.web.formbean.LoginForm"/>
		<form-bean name="regForm" type="com.javacrazyer.web.formbean.RegisterForm"/>
    </form-beans>

<!-- =========================================== Action Mapping Definitions -->
    <action-mappings>
	<action path="/login" name="loginForm" type="com.javacrazyer.web.action.LoginAction" validate="true"		
		   input="/index.jsp">
			<forward name="succ" path="/login_success.jsp"/>
			<forward name="failure" path="/login_failure.jsp"/>
		</action>
    </action-mappings>
</struts-config>

 这里的示例就不要用到validator.xml和validator-rules.xml了,也不需要资源文件

 关于web.xml的配置、LoginAction和其他JSP页面都与第一篇文章中的一样,这里就不写了,实现的效果也就是第一篇文章中所展示的效果

 

分享到:
评论

相关推荐

    struts1.x使用common-validator验证框架

    5. **处理请求**:当用户提交表单时,Struts框架会调用Validator插件来执行验证。如果验证失败,Struts会将错误信息存储在ActionForm中,然后重定向回表单页面并显示错误信息。 6. **显示错误信息**:在JSP页面上,...

    struts-1.3.8-all.zip

    使用Struts 1.3.8时,开发者需要配置web.xml和struts-config.xml,定义ActionServlet、Action、ActionForm等元素。此外,还需要编写ActionForm类,实现业务逻辑的Action类,以及使用JSP和Struts标签创建用户界面。 ...

    struts-1.3.8-all.jar

    5. **Tiles**:Struts 1.3.8 版本中集成了 Tiles 模块,用于页面布局和组合,它允许开发者创建可重用的页面片段,提高了页面设计的灵活性和效率。 6. **配置文件**:如 `struts-config.xml`,它是 Struts 的核心...

    struts-1.2.9-bin 及 struts-1.2.9-src

    5. **示例应用**:通常包括 strutstutorial 或 samples 应用,用于学习和理解Struts框架的工作原理。 6. **文档**:包括API文档和用户指南,帮助开发者理解和使用Struts。 **struts-1.2.9-src** 则包含了Struts的源...

    struts-1.3.8-all&1.3.10

    7. **使用方法**:开发者需要将这些库文件添加到项目的类路径中,然后按照Struts的架构进行开发,编写Action类、ActionForm、配置文件等。同时,还需要在Web应用的web.xml中配置Struts的前端控制器。 8. **安全问题...

    struts-core-1.3.10.jar.zip

    3. **ActionMapping**:映射Action,定义了Action的路径、方法以及与之关联的ActionForm。 4. **ActionForward**:用于定义请求转发,可以将控制权转移到其他Action或者JSP页面。 5. **Action**:处理业务逻辑的...

    struts-1.3.10-all

    9. **commons-validator-1.3.1.jar**:Apache Commons Validator,提供了数据验证功能,可以验证用户输入的数据,确保其符合业务规则。 10. **struts-tiles-1.3.10.jar**:Struts Tiles扩展,提供了一种强大的布局...

    struts-1.2.9-src.zip

    3. 表单验证:学习如何在ActionForm中定义验证规则,以及在客户端和服务端进行数据校验。 4. 国际化和本地化:研究Struts如何支持多语言环境,如何配置资源文件以实现动态显示语言内容。 5. 模板和页面布局:通过...

    struts-1.2.9-bin.zip

    Struts是Apache软件基金会(ASF)的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。...理解Struts 1.2.9的工作原理和使用方法,对于理解现代Web框架的演进历程至关重要。

    struts-1.2.9-all-bin

    - 编写Action:实现业务逻辑,调用Service层方法,处理ActionForm中的数据。 - 配置struts-config.xml:定义ActionMapping,关联ActionForm和Action,设置请求转发路径。 - 设计JSP页面:展示视图,使用Struts...

    Struts Validator验证框架详细讲解.txt

    相比于Struts内置的ActionForm Bean验证方式,Struts Validator提供了更灵活、更强大的验证功能,能够处理复杂的验证逻辑,并且可以与Spring和Hibernate等其他框架无缝集成,形成完整的Struts2 + Spring + Hibernate...

    org.springframework.web.struts-sources-3.0.4.RELEASE.jar

    Spring提供了一个名为`SpringModuleServlet`的类,它是`ActionServlet`的子类,负责初始化Spring的ApplicationContext,并将Struts的ActionForm对象与Spring的Bean进行关联。 2. **依赖注入(DI)** `org.spring...

    Struts-Validate-Reset

    验证(Validate)在Struts中通常是通过ActionForm类的子类来完成的。ActionForm是MVC模式中的模型层组件,它负责接收并封装来自视图层的用户输入。为了进行验证,我们需要在ActionForm中定义一个或多个JavaBean属性...

    struts-1.2.8-bin

    7. **ActionForm** 类:Struts 中的表单类,用于接收和验证来自用户的输入,然后传递给控制器处理。 8. **Action** 类:负责处理用户的请求,执行业务逻辑,并返回一个结果页面或转发。 通过 `struts-1.2.8-bin`,...

    struts-1.2.9-lib.tar.gz

    5. **Struts-config.xml**:这是Struts的配置文件,定义了Action映射、数据源、Validator规则等关键元素。 6. **.tld (Tag Library Descriptor)** 文件:这些文件描述了JSP标签的行为和属性,使得开发者可以使用...

    Struts1的validator验证框架

    ### Struts1的Validator验证框架详解 在Java Web开发领域,Struts1作为一个经典且流行的MVC框架,提供了丰富的功能来构建动态Web应用。其中,Validator框架是Struts1用于客户端和服务端表单验证的强大工具,它能...

    struts-1.2.9-lib

    6. **配置文件**:主要有struts-config.xml,这是Struts应用的主要配置文件,包含了ActionMapping、ActionForm、Action以及全局的常量定义。 7. **国际化与本地化**:Struts支持多语言环境,通过资源包(Resource ...

    struts1.x validator框架验证入门例子

    5. 数据验证:Struts框架根据配置的规则在服务器端自动执行验证。 6. 处理结果:如果验证失败,Struts会将错误信息返回到客户端,用户需修正错误后重新提交;如果验证成功,则继续后续的业务处理。 三、Validator...

    struts validator验证框架项目

    Struts Validator通过ActionForm对象的`validate()`方法执行验证。当用户提交表单时,框架会调用相应ActionForm的验证方法,根据`validation.xml`中的配置进行检查。如果验证失败,错误信息会被添加到ActionForm的`...

Global site tag (gtag.js) - Google Analytics