通过资源文件 验证拦截机制

/bpmx_datayes/web/WEB-INF/view/platform/system/sysUserEdit.jsp
为空验证 机制
拦截器获取JS
-----------------
<script type="text/javascript" src="${ctx}/servlet/ValidJs?form=sysUser"></script>
-----------------
web.xml:
<servlet>
<servlet-name>ValidJS</servlet-name>
<servlet-class>com.hotent.core.web.servlet.ValidJs</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ValidJS</servlet-name>
<url-pattern>/servlet/ValidJs</url-pattern>
</servlet-mapping>
-------------------
Servlet--ValidJS
/**
* 根据表单名称获取客户段认证的JS代码。
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/javascript;charset=utf-8");
String form=RequestUtil.getString(request, "form");
Locale local= RequestUtil.getLocal(request);
String str="";
if(StringUtil.isNotEmpty(form))
{
try {
str=ValidationUtil.getJs(form, local);
} catch (TemplateException e) {
str= "";
}
}
response.getWriter().print(str);

}
---------------------
/**
* 调用模版引擎生成验证的JS。
* @param roleForm
* @param local
* @return
* @throws IOException
* @throws TemplateException
*/
public static String getJs(String roleForm,Locale local) throws IOException, TemplateException
{
FreemarkEngine freemaker=(FreemarkEngine)AppUtil.getBean(FreemarkEngine.class);
//获取验证表单对象。
ValidForm form= getForm(roleForm, local);

Map map=new HashMap();
map.put("form", form);
String str=freemaker.mergeTemplateIntoString("validJs.ftl", map);
return str;
}
--------------------------
getForm 方法:
ValidatorFactory factory = (ValidatorFactory)BeanFactoryUtils.beanOfTypeIncludingAncestors(ctx, ValidatorFactory.class, true, true);
ValidatorResources resources= factory.getValidatorResources();
Form frm= resources.getForm(local :zh_CN , formName:sysUser);
----------------------------
配置文件:
/bpmx_datayes/resources/resource/form_zh_CN.properties
修改添加:sysUser.userCode=\u5458\u5DE5\u7F16\u53F7
/bpmx_datayes/resources/conf/valid/formValid.xml
修改添加:
<field property="userCode" depends="required,maxlength">
<arg position="0" key="sysUser.userCode" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
------------------
form_zh_CN.properties 中相关内容
sysUser.fullname=\u59d3\u540d
sysUser.account=\u5e10\u53f7
sysUser.password=\u5bc6\u7801
sysUser.isExpired=\u662f\u5426\u8fc7\u671f
sysUser.isLock=\u662f\u5426\u9501\u5b9a
sysUser.createtime=\u521b\u5efa\u65f6\u95f4
sysUser.status=\u72b6\u6001
sysUser.email=\u90ae\u7bb1
sysUser.mobile=\u624b\u673a
sysUser.phone=\u7535\u8bdd
解析:
sysUser.fullname=姓名
sysUser.account=帐号
sysUser.password=密码
sysUser.isExpired=是否过期
sysUser.isLock=是否锁定
sysUser.createtime=创建时间
sysUser.status=状态
sysUser.email=邮箱
sysUser.mobile=手机
sysUser.phone=电话
--------------------------
form Validate 相关内容
<!--start_SYS_USER -->
<form name="sysUser">
<field property="fullname" depends="maxlength">
<arg position="0" key="sysUser.fullname" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>127</var-value>
</var>
</field>
<field property="account" depends="required,maxlength">
<arg position="0" key="sysUser.account" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
</field>
<field property="password" depends="required,maxlength">
<arg position="0" key="sysUser.password" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>50</var-value>
</var>
</field>
<field property="isExpired" depends="digits">
<arg position="0" key="sysUser.isExpired" />
</field>
<field property="isLock" depends="digits">
<arg position="0" key="sysUser.isLock" />
</field>
<field property="status" depends="number">
<arg position="0" key="sysUser.status" />
</field>
<field property="email" depends="email,maxlength">
<arg position="0" key="sysUser.email" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>128</var-value>
</var>
</field>
<field property="mobile" depends="mobile,maxlength">
<arg position="0" key="sysUser.mobile" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>32</var-value>
</var>
</field>
<field property="phone" depends="phone,maxlength">
<arg position="0" key="sysUser.phone" />
<arg position="1" name="maxlength" key="${var:maxlength}"
resource="false" />
<var>
<var-name>maxlength</var-name>
<var-value>32</var-value>
</var>
</field>
</form>
<!--end_SYS_USER -->
----------------------------
frm 形式
Form: sysUser
Field:
key = fullname
property = fullname
indexedProperty = null
indexedListProperty = null
depends = maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=127 resource=false jsType=null


Field:
key = account
property = account
indexedProperty = null
indexedListProperty = null
depends = required,maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=20 resource=false jsType=null


Field:
key = password
property = password
indexedProperty = null
indexedListProperty = null
depends = required,maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=50 resource=false jsType=null


Field:
key = isExpired
property = isExpired
indexedProperty = null
indexedListProperty = null
depends = digits
page = 0
fieldOrder = 0
Vars:

Field:
key = isLock
property = isLock
indexedProperty = null
indexedListProperty = null
depends = digits
page = 0
fieldOrder = 0
Vars:

Field:
key = status
property = status
indexedProperty = null
indexedListProperty = null
depends = number
page = 0
fieldOrder = 0
Vars:

Field:
key = email
property = email
indexedProperty = null
indexedListProperty = null
depends = email,maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=128 resource=false jsType=null


Field:
key = mobile
property = mobile
indexedProperty = null
indexedListProperty = null
depends = mobile,maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=32 resource=false jsType=null


Field:
key = phone
property = phone
indexedProperty = null
indexedListProperty = null
depends = phone,maxlength
page = 0
fieldOrder = 0
Vars:
maxlength=Var: name=maxlength value=32 resource=false jsType=null


--------------------------

原始验证方法
?

function showRequest(formData, jqForm, options) {
return true;
}
var __valid;
function showResponse(responseText, statusText) {
var self=this;
var obj=new com.hotent.form.ResultMessage(responseText);
if(obj.isSuccess()){//成功
$.ligerDialog.confirm( obj.getMessage()+",是否继续操作","提示信息",function(rtn){
if(!rtn){
var returnUrl=$("#returnUrl").val();
if($("#returnUrl").length>0 && returnUrl!=""){
location.href=returnUrl;
return;
}
var linkBack=$("a.back");
if(linkBack.length>0){
var returnUrl=linkBack.attr("href");
if(returnUrl!=""){
location.href=returnUrl;
return;
}
}
}
else{
if(self.isReset==1){
__valid.resetForm();
}
}
});

}else{//失败
$.ligerDialog.error( obj.getMessage(),"出错了");
}
}
function valid(showRequest,showResponse,isReset){

var options={};

if(showRequest )
options.beforeSubmit=showRequest;

if(showResponse )
options.success=showResponse;

if(isReset){
options.isReset=isReset;
}

__valid=$("#sysUserForm").validate({

rules: {
fullname:{
maxlength:127
},
account:{
required:true,
maxlength:20
},
password:{
required:true,
maxlength:50
},
isExpired:{
digits:true
},
isLock:{
digits:true
},
status:{
number:true
},
email:{
email:true,
maxlength:128
},
mobile:{
mobile:true,
maxlength:32
},
phone:{
phone:true,
maxlength:32
}
},
messages: {
fullname:{
maxlength:"姓名 最多 127 个字符."
},
account:{
required:"帐号 必填",
maxlength:"帐号 最多 20 个字符."
},
password:{
required:"密码 必填",
maxlength:"密码 最多 50 个字符."
},
isExpired:{
digits:"是否过期 必须填写整数."
},
isLock:{
digits:"是否锁定 必须填写整数."
},
status:{
number:"状态 必须填写数字"
},
email:{
email:"请输入有效的邮件地址.",
maxlength:"邮箱 最多 128 个字符."
},
mobile:{
mobile:"手机号码格式错误",
maxlength:"手机 最多 32 个字符."
},
phone:{
phone:"电话号码格式错误",
maxlength:"电话 最多 32 个字符."
}
},
submitHandler:function(form){
$(form).ajaxSubmit(options);
},
success: function(label) {
label.removeClass("error");
}
});
}

posted @ 2016-08-11 10:46  百变小超  阅读(479)  评论(0编辑  收藏  举报