首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2 应验框架

2012-11-01 
Struts2验证框架说起来有些小郁闷.程序天下-struts2技术详解 这本书主要是针对 Struts2.0? 来讲的.但

Struts2 验证框架

说起来有些小郁闷.<<程序天下-struts2技术详解>> 这本书主要是针对 Struts2.0? 来讲的.但自己用的是 Struts2.1.6? 所以在学的时候和书上有很多的出入.自己英语水平还不到能顺利看懂 英文文档的水平.? 有些问题得不到解决.网上找了一下,也没有什么收获.郁闷!Struts2.1 在 Ajax 方面比 Struts2.0 改动了许多,暂时先不管了.

本来打算来一次地毯式的"扫荡"? 不能如愿.

http://noknower.iteye.com/blog/274100

?

这里基础详细的讲了一些常用的.这就跟着补充一下吧.

在Action 里进行验证

// /**// * validate 进行全局验证// */// @Override// public void validate() {// if (null == userAge || userAge > 0) {// // 记录错误 addFieldError(属性名 , 提示信息);// addFieldError("userAge", "userAge 必须大于0.");// }// }// /**// * 针对 testAction 进行验证 validateXxxx 进行设置// */// public void validateTestAction() {// if (null == userAge || userAge > 0) {// // 记录错误 addFieldError(属性名 , 提示信息);// addFieldError("userAge", "userAge 必须大于0.");// }//}

?要说的是在这里涉及到类型转换. 书上说 最好让类型转换人有优先于验证.想想些道理.这里关于类型转换就不多说了.

?

?

TestAction-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="stringlength"><param name="minLength">4</param><param name="maxLength">14</param><message>xml userName 长度在${minLength} 和 ${maxLength} 之间.</message></field-validator><!-- short-circuit="true"  设置短路校验  --><field-validator type="requiredstring" short-circuit="true"><message>xml userName不能为空.</message></field-validator><!-- 正则校验<field-validator type="regex"><param name="expression"><![CDATA[(\w{4,25})]]></param><message key="name.regex"/></field-validator>--></field></validators>

它的命名是经 Xxxx--validation.xml 形式来的.

?

?

sx:datetimepicker

这和Struts2.0 有不同? 引入struts2-dojo-plugin-2.1.8.jar? 之后

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="sx" uri="/struts-dojo-tags"%> <html><head>                <s:head theme="xhtml" /><sx:head parseContent="true" extraLocales="en_us" /> </head><body>最好先进行类型转换再进行数据校验<s:form action="testAction" method="post" ><sx:datetimepicker name="userDate" displayFormat="yyyy-MM-dd"language="en_us" label="userDate" value="userDate" />                       ?<s:submit /></s:form></body></html>

?Ajax? 验证 这块没有成功.在网上也没有找到好的解决方案 只能这样了.? 附件里是 demo .

?

使用客户端校验是个很好的办法,但要注意:TestAction-validation.xml 资源中的消息在JSP不调用Action是不能使用的,只有先调用Action,该页面对应的校验配置文件.

在这里就是说要通过 Action(http://localhost:8088/TestStruts2Validate/testAction.action) 到达 index.jsp 页面时才可以在 s:form 中 使用 validate="true" 否则会出错.

?

?

Struts2.1 把Ajax 移动到 dojo 中.在使用过程中问题多多.但书本大多是以 Struts2.0 来讲的.

热点排行