一个return引发的血案
2013-05-13 13:07
155 查看
<%@ page import="Easis.Common.JsonHelper" %> <%@ page import="Easis.Common.StringUtil" %> <%@ page import="Easis.Common.Validation" %> <%@ page import="Easis.HTTP.RequestEnhance" %> <%@ page import="EWeb.eFrom.shop" %> <%@ page import="java.util.Hashtable" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% RequestEnhance _re=new RequestEnhance(request); shop form_model=new shop(); Hashtable<String,Object> hsres=Validate(_re,form_model); boolean valid_res=StringUtil.Str2Boolean(hsres.get("status").toString()); if(valid_res==false){ out.print(JsonHelper.getJsonString(hsres));return; } //-form_model可以用了 /*自定义逻辑*/ out.print(JsonHelper.getJsonString(hsres)); /*切勿加return,加了的话会造成下面的方法无法正常编译,最后会报错找不到方法。*/ /*自定义逻辑*/ %> <%! /*验证代码开始了*/ public Hashtable<String,Object> Validate(RequestEnhance _re,shop form_model){ form_model=new shop(); /*定义相关参数*/ String origin_id=_re.fetchParamByPost("eform.id"); if(origin_id==null){ return ErrorInfo("表单中并不包含【主键】的数据,请确认是否同一表单?"); } String origin_title=_re.fetchParamByPost("eform.title"); if(origin_title==null){ return ErrorInfo("表单中并不包含【店铺名称】的数据,请确认是否同一表单?"); } String origin_imgurl=_re.fetchParamByPost("eform.imgurl"); if(origin_imgurl==null){ return ErrorInfo("表单中并不包含【店铺封面】的数据,请确认是否同一表单?"); } String origin_mapLocation=_re.fetchParamByPost("eform.mapLocation"); if(origin_mapLocation==null){ return ErrorInfo("表单中并不包含【地址示意图】的数据,请确认是否同一表单?"); } String origin_description=_re.fetchParamByPost("eform.description"); if(origin_description==null){ return ErrorInfo("表单中并不包含【店铺描述】的数据,请确认是否同一表单?"); } String origin_tel=_re.fetchParamByPost("eform.tel"); if(origin_tel==null){ return ErrorInfo("表单中并不包含【电话号码】的数据,请确认是否同一表单?"); } String origin_email=_re.fetchParamByPost("eform.email"); if(origin_email==null){ return ErrorInfo("表单中并不包含【联系邮箱】的数据,请确认是否同一表单?"); } String origin_contactor=_re.fetchParamByPost("eform.contactor"); if(origin_contactor==null){ return ErrorInfo("表单中并不包含【联系人】的数据,请确认是否同一表单?"); } String origin_istop=_re.fetchParamByPost("eform.istop"); if(origin_istop==null){ return ErrorInfo("表单中并不包含【置顶】的数据,请确认是否同一表单?"); } String origin_content=_re.fetchParamByPost("eform.content"); if(origin_content==null){ return ErrorInfo("表单中并不包含【详细描述】的数据,请确认是否同一表单?"); } /*字符串验证*/ if(Validation.isInteger(origin_id)==false){ return ErrorInfo("【id】格式错误,必须为整数!"); } if(Validation.isRequired(origin_title)==false){ return ErrorInfo("必须填写店铺名称"); } if(Validation.isRequired(origin_imgurl)==false){ return ErrorInfo("必须选择店铺封面!"); } if(Validation.isURL(origin_imgurl)==false){ return ErrorInfo("图片地址格式错误!"); } if(Validation.isURL(origin_mapLocation)==false){ return ErrorInfo("地址示意图网址格式错误。"); } if(Validation.isRequired(origin_mapLocation)==false){ return ErrorInfo("必须补充店铺的位置示意图!"); } if(Validation.isRequired(origin_description)==false){ return ErrorInfo("必须填写店铺描述!"); } if(Validation.isPhoneNumber(origin_tel)==false){ return ErrorInfo("号码格式错误!【例如:xxxx】"); } if(Validation.isRequired(origin_tel)==false){ return ErrorInfo("必须填写号码!"); } if(Validation.isEmailAddr(origin_email)==false){ return ErrorInfo("联系邮箱必须为邮箱格式(例如:xxx@qq.com)"); } if(Validation.isRequired(origin_email)==false){ return ErrorInfo("必须填写联系邮箱!"); } if(Validation.isBoolean(origin_istop)==false){ return ErrorInfo("置顶必须为布尔值。"); } /*赋值*/ try{form_model.id= Integer.parseInt(origin_id);} catch(Exception ef){ return ErrorInfo(ef.toString());} form_model.title=origin_title; form_model.imgurl=origin_imgurl; form_model.mapLocation=origin_mapLocation; form_model.description=origin_description; form_model.tel=origin_tel; form_model.email=origin_email; form_model.contactor=origin_contactor; form_model.istop=StringUtil.Str2Boolean(origin_istop); form_model.content=origin_content; return SuccessInfo("所有参数都符合要求"); } /*验证代码结束了*/ %> <%! public Hashtable<String,Object> ErrorInfo(String message){ Hashtable<String,Object> hsres=new Hashtable<String,Object>(); hsres.put("status",false); hsres.put("message",""+message); return hsres; } public Hashtable<String,Object> SuccessInfo(String message){ Hashtable<String,Object> hsres=new Hashtable<String,Object>(); hsres.put("status",true); hsres.put("message",""+message); return hsres; } %>
看看这一段代码--其实是自动生成的,
看到下面这一段话没有?:
/*切勿加return,加了的话会造成下面的方法无法正常编译,最后会报错找不到方法。*/
没错,这次的主角就是return。
我用的是tomcat,当采用return以后,jsp的编译就会结束,结果访问该jsp页面会报错,找不到方法之类的,为了这个问题我搞了一个晚上,bug还真是程序猿的天敌。
相关文章推荐
- 一个return引发的血案
- 一个“Spring轮子”引发的“血案”(4)
- 一个key引发的血案
- 一个内存泄漏引发的血案
- 一个base64引发的血案
- Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
- 一个Sqrt函数引发的血案
- 读“rm -rf/ 又引发了一个血案”之触动
- break使用不当引发的一个“血案”
- 一个因全局变量引起的DLL崩溃引发的血案
- 一个脚本引发的血案
- 转发同事总结:一个BUG引发的血案(起因篇)
- 一个update差点引发的血案
- 一个换算小程序引发的测试血案
- 记一个逗号引发的血案,Mark 安卓下的 Web 调试
- 一个“Spring轮子”引发的“血案”(6)
- 一个“Spring轮子”引发的“血案”(2)
- 一个“Spring轮子”引发的“血案”(4)
- 一个JS引发的血案
- 恶搞影片:一个馒头引发的血案!(搞翻无级)本片与现实生活如有雷同,纯属三生有幸,作者请客吃饭。