1.controller(事务处理)层方法
/***
*检验学院名是否重复(是否可用) ResponseBody:返回的是json数据
* @param xueyuan_name
* @param response
*/
@RequestMapping("/check")
@ResponseBody
public void checkout(@RequestParam("xueyuan_name") String xueyuan_name,HttpServletResponse
response){
System.out.println("检验执行");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//调用service层方法findXueyuan(xueyuan_name)
List<Xueyuan> list=xueyuanService.findXueyuan(xueyuan_name);
//if(null != list && !list.isEmpty()) 判断集合是否为空,如果为空说明当前没有学院名,否则改学院已经存在
if(list.isEmpty()){
out.print("1");
}else{
out.print("2");
}
out.flush();
out.close();
}
2.Mapper层动态SQL语句
sql查询语句去数据库里查询是否存在相同学院名
<select id="findXueyuan" parameterType="cn.ydf.ssm.entity.Xueyuan" resultMap="XueyuanResult">
select * from t_xueyuan where xueyuan_name = #{xueyuan_name}
</select>
3.前端发送ajax验证
校验学院名是否可用,及表单验证是否通过
//校验表单数据
function validate_add_from(){
//拿到校验数据,使用正则表达式
var xueyuan_name = $("#xueyuan_name_add_input").val();
var regname = /(^[a-zA-Z0-9_-]{2,10}$)|(^[u4e00-\u9fa5]{2,10}$)/;
if(!regname.test(xueyuan_name)){
show_validate_msg("#xueyuan_name_add_input", "error", "学院可以是2-10位中文或者2-10位英文和数字的组合");
return false;
}else{
show_validate_msg("#xueyuan_name_add_input","success","");
};
return true;
}
function show_validate_msg(ele,status,msg){
//清除当前元素的校验状态
$(ele).parent().removeClass("has-success has-error");
$(ele).next("span").text("");
if("success"==status){
$(ele).parent().addClass("has-success");
$(ele).next("span").text(msg);
}else if("error" == status){
$(ele).parent().addClass("has-error");
$(ele).next("span").text(msg);
}
}
//发送ajax请求校验用户名是否可用
$("#xueyuan_name_add_input").change(function(){
var xueyuan_name = this.value;
$.ajax({
url:"${PATH}/xueyuan/check",
data:"xueyuan_name="+xueyuan_name,
type:"POST",
success:function(data){
if(data=="1"){
show_validate_msg("#xueyuan_name_add_input","success","学院名可用");
$("#xueyuan_save_btn").attr("ajax-va","success");
}else
{
show_validate_msg("#xueyuan_name_add_input","error","学院名重复");
$("#xueyuan_save_btn").attr("ajax-va","error");
}
}
});
});
//发送ajax请求保存事件(点击保存提出请求)
$("#xueyuan_save_btn").click(function(){
//判断表单是否通过
if(!validate_add_from()){
return false;
};
//判断之前的ajax学院名是否重复
if ($(this).attr("ajax-va")=="error"){
return false;
}
});