`

Struts2_action_validate_simpleTest

阅读更多
    昨晚很晚才完成了struts2.0简单数据验证,没时间写到博客里就已经累的不行了!今天过来又练习了一遍,发现自己还是基本掌握了(只是皮毛中的皮毛)!

注意:在查看webwork技术文档时发现其中一句话是这样写的,在action类中如果没有属性getter方法,则:在验证失败之后(或者直接是addFieldError()返回的错误),在用户输入页面无法得到刚才的值,这是很不友好的方式,不可能因为用户一个输入框的数据不规范,就清除了用户所有的数据!所以,一定要保留getter方法。(不过,password类型的文本框就是多给一个getter也不可能有值的!开玩笑
    直接代码说话了,以下是控制器action的代码:
import com.opensymphony.xwork2.ActionSupport;

public class UserCaseAction extends ActionSupport
{

	private static final long serialVersionUID = 1L;

	private String userName;

	private String password;

	public String getUserName()
	{
		return userName;
	}

	public void setUserName(String userName)
	{
		this.userName = userName;
	}

	public String getPassword()
	{
		return password;
	}

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

	public UserCaseAction(String userName, String password)
	{
		super();
		this.userName = userName;
		this.password = password;
	}

	public UserCaseAction()
	{
		super();
	}

	public String login()
	{
		//依照网上的做法,让线程休眠500毫秒,然后查看timer拦截器在控制台的输出结果
		try
		{
			Thread.sleep(500);
		}
		catch(InterruptedException e)
		{
			e.printStackTrace();
		}
		if ("Harry".equals(this.getUserName().trim()) 
&& "Harry".equals(this.getPassword().trim()))
		{
			//注意:此处的result在转发到的页面中可以访问其值!
			this.addFieldError("userName", "Login success ! !");
			return "input";
		}
		else
		{
			this.addFieldError("userName", "Login failure");
			return "input";
		}
	}

	@Override
	/**
	 * 验证数据的方法--已重写
	 */
	public void validate()
	{
		if (null == this.getUserName() 
                || "".equals(this.getUserName().trim()))
		{
			this.addFieldError("userName", 
                         "Username is required ! !");
		}
		if (null == this.getPassword()
                || "".equals(this.getPassword().trim()))
		{
			this.addFieldError("password", 
                          "Password is required ! !");
		}
	}

}


----配置文件大同小异,不需要贴出来了,否则高手要喷饭了!

JSP页面代码:
<s:form action="userCase">
			<s:textfield name="userName" label="UserName"></s:textfield>
			<s:password name="password" label="Password"></s:password>
			<s:submit value="Login" method="login"></s:submit>
		</s:form>



OK,到此为止就基本上可以用了,当我访问时,会出现附件中的页面,经过几番捣乱,就可以体会到validate的作用了!


注意:在初次使用struts2标签时,发现访问以上的JSP页面,居然会给我报出一个action未找到%$#@?*&^的异常,异常信息具体是:
The Struts dispatcher cannot be found.
This is usually caused by using Struts tags without the associated filter.
Struts tags are only usable when the request has passed through its servlet filter,
which initializes the Struts dispatcher needed for this tag. 
- [unknown location]

郁闷至极,终于发现:原来是自己在web.xml文件中关于struts2框架的filter配置中有问题,直接访问JSP页面,无法经过该filter中的url-pattern,所以,需要重新修改一下web.xml文件中的内容。
<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>


以上就这些了!!!




另外,再啰嗦几句,当我的Action中不是只有一个乖巧的唯一的宝贝execute方法,而是有很多山寨自定义方法时,如何调用呢?
在JSP页面中,表单提交地址可以写成
<form action="userCase!login.action" method="post">

但是在struts标签使用之后,需要按照这样的方式:
<s:form action="userCase">
    <s:submit value="Login" method="login"/>
</s:form>



。。。。修炼内功。。。。。
  • 大小: 6.9 KB
  • 大小: 14.6 KB
分享到:
评论
1 楼 背着家走 2012-06-29  
很严谨,叙述很清晰!

相关推荐

    Validate_code.rar_struts valida_struts valida_struts validate_v

    struts validate框架示例,并附有文字说明,适合初学者,是学习struts的好资料

    struts2_validate

    Struts2验证应该包括验证器(需要xml配置)和Action中的validate()验证方法两种。后者很简单,只需要把 验证条件加进去就可以啦!

    struts2入门实例2 经典入门必备

    10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 ...

    struts2入门实例1

    10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 ...

    struts2入门实例4 经典入门必备

    10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 ...

    struts2入门实例3 经典入门必备

    10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 ...

    Struts(二)List_Map_LookupDispatchAction_Validate

    List_Map_LookupDispatchAction_Validate的使用~ 具体内容浏览giddy的MSN Space

    Struts2_validate_6_8.rar_Java 8

    struts2详细验证输入数据的内容 非常方便和好用,对你一定价值

    ajax_struts2_上传与下载_无刷新

    3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....

    struts2_validation

    Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容...

    Struts2的validate验证框架

    这个validate验证框架中的actiionerror级别的错误的验证提示,并包含了如何在一个Action中处理多个业务逻辑,(struts1.x 中的DispatcheAction),例子比较简单,希望对大家学习struts有所帮助。

    在Eclipse中配置Struts2项目(html)手把手教会你 +struts2 标签库介绍(html) + STRUTS2学习文档.pdf + Struts2―表单验证validate(html) + struts2和struts的比较 + struts教程(html)

    在Eclipse中配置Struts2...Struts2―表单验证validate(html)对validate的type属性校验类型以及param 做了详细的解释说明。 struts2和struts的比较 让你更清楚的知道struts2和struts的不同之处。 struts教程(html)

    struts2_spring3_hibernate3_1.1

    1.使用struts2+spring3+hibernate3整合实现用户CRUD功能。 2.使用多种配置方式 A.将hibernate实体映射集成到spring配置文件中。 B.使用properties文件配置数据源 3.使用传统的配置文件集成框架。 A.视...

    淘宝API接口

    淘宝API标准接口 protected $taobaoData; private $_userParam = array(); private $_errorInfo; /** * @var Taoapi_Util */ public static $Taoapi_Util; /** * @var Taoapi_Config ... }

    jquery.validate 与 struts2的整合使用

    jquery.validate 与 struts2的整合使用

    Test_Validate_Framework【验证框架】,验证框架

    Test_Validate_Framework【验证框架】,验证框架

    struts1.2 validate 源代码 实现

    struts1.2 validate 源代码 实现 下载,myeclipse 下struts1.2框架下validate 表单验证,简单例子,功能已经实现

    struts2讲义_吴峻申

    9.2.2 Struts2Action范围属性文件国际化应用 187 9.2.3 Struts2临时范围属性文件国际化应用 188 9.3 用户主动选择国际化应用介绍 191 第10章 Struts2页面布局实现 194 10.1 sitemesh基本使用方法 194 10.2 sitemesh...

    struts2对Action提交方法进行验证

    但是这样做,不好之处就是我们可以通过人为的将开发者的验证js注掉,这样就导致验证失败,对后台安全性是一个很大的威胁,在采用struts2进行...本附件为【Struts2】★☆之struts2对Action提交方法进行验证,下载源码!

    AnyFo - Struts 2_1爆胎易筋丸.pdf

    2 Action 研究.........................................................................................................................8 2.1 访问Servlet API................................................

Global site tag (gtag.js) - Google Analytics