ajax检验前台表单数据库,表单保存时前端先通过ajax请求到服务器作检验(controller)...

这篇博客详细介绍了前端使用Ajax进行数据验证的过程,包括在保存供应商信息前进行必输项校验,以及通过Ajax发送POST请求到后台控制器进行公司名称的重复性检查。控制器接收到请求后,调用Service层方法查询数据库中是否存在相同的公司名称。如果存在,则返回错误信息,前端提示用户;否则,提交表单至数据库。整个流程涉及前端交互、后台处理和数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端请求://保存函比抖朋要插支一圈不者地数

function tmpSave(){

if(!checkInput()) //先做必输项校验,具体函数没写出

{

return;

}

//服务器校验(判断companyName在数据库是否存在)

var companyName = $("#COMPANY_NAME").val();

$.ajax({

type: "POST",

url: 'customer/isRepeat', //请求到controller地址

data: {KEYDATA:companyName,tm:new Date().getTime()}, //请求参数

dataType:'json', //返回JSon数据

cache: false,

success: function(data){ //成功请求的回调函数

if("success" == data.result){

$("#saveType").val("tmpSave");

$("#Form").submit(); //表单提交,即数据库没有重复的companyName

}else{

$("#COMPANY_NAME").tips({

side : 3,

msg : "供应商已存在",

bg : '#AE81FF',

time : 15

});

$("#COMPANY_NAME").focus();

}

}

});

}

controller:(前面的@controller注解及@RequestMapping未写出)

/**

* 新增时判断供应商是否存在

*

*/

@RequestMapping(value = "/isRepeat")

@ResponseBody

public Object isRepeat() throws Exception {

String errorinfo = "";

Map map = new HashMap();

PageData pd = new PageData(); //PageData类用map封装了页面参数

pd = this.getPageData();

String companyName = pd.getString("KEYDATA");

CompanyInfo com = companyService.getCompanyByCompanyName(companyName); //调用service层方法通过companyName去查找对应的bean~CompanyInfo

if (com != null) {

errorinfo = "companyNameError";

} else {

errorinfo = "success";

}

map.put("result", errorinfo);

return AppUtil.returnObject(new PageData(), map);

}

service层方法:

@Service

public class CompanyService {

@Resource(name = "daoSupport")

private DaoSupport dao;

public CompanyInfo getCompanyByCompanyName(String companyName)

throws Exception {

PageData data = (PageData)dao.findForObject(

"CompanyMapper.getCompanyByCompanyName", companyName);

return BeanConvertUtils.transPageData2Bean(data, CompanyInfo.class);

}

}

DaoSupport类封装方法如下:

@Repository("daoSupport")

public class DaoSupport implements BaseDAO {

@Resource(name = "sqlSessionTemplate")

private SqlSessionTemplate sqlSessionTemplate;

/**

* 保存对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object save(String str, Object obj){

return sqlSessionTemplate.insert(str, obj);

}

/**

* 批量更新

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object batchSave(String str, List objs){

return sqlSessionTemplate.insert(str, objs);

}

/**

* 修改对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object update(String str, Object obj){

Integer count=sqlSessionTemplate.update(str, obj);

/*if(count<=0){

throw new PersistanceException("更新记录失败,该笔记录可能被其他用户修改,请刷新后操作.");

}*/

return count;

}

/**

* 批量更新

* @param str

* @param obj

* @return

* @throws Exception

*/

public void batchUpdate(String str, List objs ){

SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();

//批量执行器

SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);

try{

if(objs!=null){

for(int i=0,size=objs.size();i

sqlSession.update(str, objs.get(i));

}

sqlSession.flushStatements();

sqlSession.commit();

sqlSession.clearCache();

}

}finally{

sqlSession.close();

}

}

/**

* 批量更新

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object batchDelete(String str, List objs ){

return sqlSessionTemplate.delete(str, objs);

}

/**

* 删除对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object delete(String str, Object obj) {

return sqlSessionTemplate.delete(str, obj);

}

/**

* 查找对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object findForObject(String str, Object obj){

return sqlSessionTemplate.selectOne(str, obj);

}

/**

* 查找对象

* @param str

* @param obj

* @return

* @throws Exception

*/

public Object findForList(String str, Object obj){

return sqlSessionTemplate.selectList(str, obj);

}

/**

* 查找所有记录

* @param str

* @return

*/

public Object findAllList(String str){

return sqlSessionTemplate.selectList(str);

}

public Object findForMap(String str, Object obj, String key, String value) {

return sqlSessionTemplate.selectMap(str, obj, key);

}

public SqlSession getSession(){

SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();

return sqlSessionFactory.openSession();

}

public SqlSessionFactory getSessionFactory(){

return sqlSessionTemplate.getSqlSessionFactory();

}

}

Mybat大享上。是发了概开程态间些告人屏果会区。is的Mapper.xml文件写对应的sql语微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值