最近作一個白名單,給用戶依據商戶號添加使用。可是在添加以前要去判斷是否是已經存在,若是存在的話,就要給前臺返回信息,若是不存在就要有提示。
html
jsp總體使用from提交,關因而否存在的提示則使用ajax異步提交。前端
首先,給相關的字段添加一個onblur事件:ajax
1 <td nowrap="nowrap"> 2 <span><input id="enterCode" name="enterCode" class="form-control" type="text" onblur="chechEnterCode()"/></span> 3 <font id="enterCodeMsg"></font> 4 </td>
對應的js代碼以下:數據庫
function chechEnterCode(){ var enterCode = $("#enterCode").val(); $.ajax({ url : "paymentsetting.do?method=checkEnterCode", dataType : "json", type : "post", data : {"enterCode" : enterCode}, success : function(json){ if("false" == json.ret){ $("#enterCodeMsg").html("該商戶不存在!"); $("#enterName").val(""); $("#orgNo").val(""); $("#orgNm").val(""); } else if("true" == json.ret){ $("#enterCodeMsg").html(""); $("#enterName").val(json.ENTER_NAME); $("#orgNo").val(json.ORG_NO); $("#orgNm").val(json.ORG_NM); } } }) }
在controller層代碼以下:json
1 /** 2 * 3 * 【根據商戶號反饋商戶名、所屬機構信息】 4 * @param request 5 * @param response 6 * @param enterCode 7 */ 8 @RequestMapping(params = "method=checkEnterCode") 9 public void checkEnterCode(HttpServletRequest request,HttpServletResponse response, String enterCode){ 10 try { 11 Map map = (Map) paymentSettingServer.findEnterByEnterCode(enterCode); 12 if(null == map){ 13 map = new HashMap<>(); 14 map.put("ret", false); 15 } 16 else{ 17 map.put("ret", true); 18 } 19 String json = JsonUtil.map2json(map); 20 responseMessage(response,json);---------------------------》轉註 21 } catch (Exception e) { 22 e.printStackTrace(); 23 } 24 }
注:此處將全部的往前端寫值的方法封裝在一個類中:app
1 protected void responseMessage(HttpServletResponse response, String message) 2 throws IOException { 3 LogUtil.MSG.debug(message); 4 response.setContentType("text/html;charset=UTF-8"); 5 PrintWriter out = response.getWriter(); 6 out.write(message); 7 }
controller層調用接口(server)以下:框架
1 /** 2 * 3 * 【根據商戶號獲取商戶信息】 4 * @param enterCode 5 * @return 6 */ 7 public Object findEnterByEnterCode(String enterCode);
接口的實現以下:異步
1 @Override 2 public Object findEnterByEnterCode(String enterCode) { 3 try { 4 return paymentsettingServiceImpl.findEnterByEnterCode(enterCode); 5 } catch(BizException ex) { 6 LogUtil.MSG.error(ex.getMessage()); 7 throw ex; 8 } catch(Exception ex) { 9 LogUtil.ERROR.error(ex,ex); 10 throw new BizException(ex.getMessage()); 11 } 12 }
服務層的代碼以下:jsp
1 public Object findEnterByEnterCode(String enterCode) { 2 try { 3 return paymentsettingDaoImpl.findEnterByEnterCode(enterCode); 4 } catch (Exception e) { 5 LogUtil.ERROR.error("校驗商戶號發生異常:" + e.getMessage()); 6 throw new BizException("校驗商戶號發生異常", e); 7 } 8 9 }
dao層代碼以下(此處使用的是hibernate框架):ide
1 public Object findEnterByEnterCode(String enterCode) { 2 QueryHelper helper = new QueryHelper(); 3 helper.append("select ep.ENTER_CODE,ep.ENTER_NAME,cm.ORG_NO,cm.ORG_NM "); 4 helper.append(" from T_ENTERPRISE ep " 5 + " left join CMMTINORG cm on ep.ORGANIZATION = cm.ORG_NO "); 6 helper.append(" where ep.ENTER_CODE = ?",enterCode); 7 List list = super.getListBySql(helper, Transformers.ALIAS_TO_ENTITY_MAP); 8 if(list.size() == 1){ 9 return list.get(0); 10 } 11 else{ 12 return null; 13 } 14 }
不存在的情形(直接去數據庫查詢而後給出提示):
存在的情形(查詢出對應的數據而且填充):