标签:post als return 提示 nat 相关 ESS color method
最近做一个白名单,给用户依据商户号添加使用。但是在添加之前要去判断是不是已经存在,如果存在的话,就要给前台返回信息,如果不存在就要有提示。
jsp整体使用from提交,关于是否存在的提示则使用ajax异步提交。
首先,给相关的字段添加一个onblur事件:
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层代码如下:
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 }
注:此处将所有的往前端写值的方法封装在一个类中:
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 }
服务层的代码如下:
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框架):
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 }
不存在的情形(直接去数据库查询然后给出提示):
存在的情形(查询出对应的数据并且填充):
标签:post als return 提示 nat 相关 ESS color method
原文地址:https://www.cnblogs.com/1987721594zy/p/9872345.html