SpringMVC+ExtJS 实现文本框内容的唯一性判断

来源:互联网 发布:费玉清网络综艺节目 编辑:程序博客网 时间:2024/06/05 04:04

在输入文本框中输入内容,但是要求输入内容必须是唯一的,不与数据库中已存在的数据重复。

java代码:

(1)在Biz中定义抽象方法validateGroupNameOrValue,然后在BizImpl层中重写此方法。

<span style="font-size:14px;">@Overridepublic int validateGroupNameOrValue(String groupName,Integer value){//根据从文本框获取的参数值判断值是否已存在String hql1="from UserGroup where 1=1 and groupName like '" + groupName + "'";String hql2="from UserGroup where 1=1 and value='" + value + "'";                //根据hql语句查询数据中相同值有多少个                int size1 = userGroupDao.findList(hql1).size();int size2 = userGroupDao.findList(hql2).size();if(size1 > 0 && size2 > 0){//分组名称与值同时不唯一return 1;}else if(size1 > 0 && size2 == 0){//分组名称不唯一,值唯一return 2;}else if(size1 == 0 && size2 > 0){//分组名称唯一,值不唯一return 3;}else{//分组名称和值均唯一return 0;}}</span>

(2)在controller.java中调用此方法

/*添加*/

<span style="font-size:14px;">@RequestMapping(value = "/add")public void add(String groupName,Integer value,String description,@RequestParam(value = "start", defaultValue = "0", required = false) int start,@RequestParam(value = "limit", defaultValue = "25", required = false) int limit,HttpServletRequest request, HttpServletResponse response) {JSONResult rets = new JSONResult(false, null);int result=userGroupBiz.validateGroupNameOrValue(groupName.trim(), value);//调用Biz中的方法先判断值是否已存在if(result==0){//当返回值为0时,说明数据库中没有所要添加的值,可以添加UserGroup userGroup=new UserGroup();userGroup.setGroupName(groupName);userGroup.setValue(value);userGroup.setDescription(description);this.outJson(response,userGroupBiz.add(userGroup));}else{ //当返回值不为0时,说明数据库中已有相同值存在if(result == 1){rets.setSuccess(false);rets.setMessage("用户分组名称和值已存在,请重新输入!");}else if(result == 2){rets.setSuccess(false);rets.setMessage("用户分组名称已存在,请重新输入!");}else if(result == 3){rets.setSuccess(false);rets.setMessage("值已存在,请重新输入!");}this.outJson(response, rets);}}</span>

(3)在使用ExtJS的view中的对应字段写一个自定义的验证事件validator

<span style="font-size:14px;">{id : 'groupNameId',fieldLabel : '用户分组名称',allowBlank : false,afterLabelTextTpl : PlatMap.redFlag,blankText : '用户分组名称不能为空',emptyText : '请输入用户分组名称',regex : /\S/,regexText : '用户分组名称不能为空',minLength : 2, // 允许输入的最少字符数minLengthText : "最小长度不能少于2个字符!",// 提示文本maxLength : 50,// 允许输入的最大字符数maxLengthText : "最大长度不能超过 50 个字符!",// 提示文本name : 'groupName',validationEvent : 'blur',validator : function(thisText) {var isGroupNameOK = true;// 先定义个全局变量var Mform = this.ownerCt.ownerCt;var groupNameValue = Mform.down('textfield[name=groupName]').getValue();var userGroup_Id = Mform.down('hiddenfield[name=userGroupId]').getValue();var value = 0;Ext.Ajax.request({url : '/base/userGroup/validateGroupName',method : 'POST',params : {userGroupId : userGroup_Id,groupName : groupNameValue,value : value},success : function(response) {var result = Ext.decode(response.responseText);if (!result.success) {isGroupNameOK = false;//此提示信息会显示在文本框后面,红色警告提示                                                        Ext.getCmp('groupNameId').markInvalid("用户分组名称已存在,请重新输入!");} else {isGroupNameOK = true;Ext.getCmp('groupNameId').clearInvalid();}}        });return isGroupNameOK;}}</span>

0 0
原创粉丝点击