标签:
ResultInfo.java
/*
* 系统提示信息封装类
*/
public class ResultInfo{
public static final int TYPE_FAIL = 0;// 失败
public static final int TYPE_SUCCESS = 1;// 成功
public static final int TYPE_WARN = 2;// 警告
public static final int TYPE_INFO = 3;// 提示信息
/*
* 消息提示类型
*/
private int type;
/*
* 提示代码
*/
private int messageCode;
/*
* 提示信息
*/
private String message;
/*
* 提示信息明细列表
*/
private List<ResultInfo> details;
/*
* 提示消息对应操作的序号,方便用户查找问题,通常用于在批量提示信息中标识记录序号
*/
private int index;
/*
* 提交后得到到业务数据信息从而返回给页面
*/
private Map<String,Object> sysdata = new HashMap<String,Object>();
public ResultInfo(){
}
/*
* 构造函数,根据提交信息代码messageCode获取提示信息
*/
public ResultInfo(final int type,int messageCode,String message){
this.type = type;
this.messageCode = messageCode;
this.message = message;
}
public boolean isSuccess(){
if(this.type == TYPE_SUCCESS){
return true;
}
return false;
}
//get、Set...
}
ExceptionResultInfo.java
/*
* 自定义系统异常类
*/
public class ExceptionResultInfo extends Exception {
// 系统统一使用的结果类,包括了 提示信息类型和信息内容
private ResultInfo resultInfo;
public ExceptionResultInfo(ResultInfo resultInfo) {
super(resultInfo.getMessage());
this.resultInfo = resultInfo;
}
public ResultInfo getResultInfo() {
return resultInfo;
}
public void setResultInfo(ResultInfo resultInfo) {
this.resultInfo = resultInfo;
}
}
SubmitResultInfo.java
/*
* 系统提交结果结果类型
*/
public class SubmitResultInfo{
// 操作结果信息
private ResultInfo resultInfo;
public SubmitResultInfo(ResultInfo resultInfo){
this.resultInfo = resultInfo;
}
public ResultInfo getResultInfo(){
return resultInfo;
}
public void setResultInfo(ResultInfo resultInfo){
this.resultInfo = resultInfo;
}
}
Service重写,抛出自定义的异常处理。
@Override
public void insertSysuser(SysuserCustom sysuser) throws Exception{
Sysuser user = findSysuserByUserId(sysuser.getUserid());
if(user != null){
ResultInfo resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_FAIL);
resultInfo.setMessage("账号已经存在了");
throw new ExceptionResultInfo(resultInfo);
}
String groupid = sysuser.getGroupid();
String mc = sysuser.getSysmc();
String mcID = null;
if(groupid.equals("1") || groupid.equals("2")){
// 监督单位
Userjd userjd = findUserjdByMc(mc);
if(userjd == null){
// 抛出异常
ResultInfo resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_FAIL);
resultInfo.setMessage("用户单位不存在");
throw new ExceptionResultInfo(resultInfo);
}
mcID = userjd.getId();
}else if(groupid.equals("3")){
// 监督单位
Useryy useryy = findUseryyByMc(mc);
if(useryy == null){
// 抛出异常
ResultInfo resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_FAIL);
resultInfo.setMessage("用户单位不存在");
throw new ExceptionResultInfo(resultInfo);
}
mcID = useryy.getId();
}else if(groupid.equals("4")){
// 监督单位
Usergys usergys = findUsergysByMc(mc);
if(usergys == null){
// 抛出异常
ResultInfo resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_FAIL);
resultInfo.setMessage("用户单位不存在");
throw new ExceptionResultInfo(resultInfo);
}
mcID = usergys.getId();
}
// 设置主键
UUID uuid = UUID.randomUUID();
String uuid32 = uuid.toString().replace("-", "");
sysuser.setId(uuid32);
sysuser.setSysid(mcID);
sysuserMapoer.insert(sysuser);
}
Action重写
//提交用户
@RequestMapping("/addsysusersubmit")
@ResponseBody
public SubmitResultInfo insertSysuser(SysuserQueryVo vo){
//默认是成功的
ResultInfo resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_SUCCESS);
resultInfo.setMessage("操作成功");
try{
sysuserService.insertSysuser(vo.getSysuserCustom());
}catch(Exception e){
//初始异常信息
e.printStackTrace();
//对异常信息进行解析
if(e instanceof ExceptionResultInfo){
//抛出的系统自定义异常
resultInfo = ((ExceptionResultInfo)e).getResultInfo();
}
else{
//构造"未知错误异常"
resultInfo = new ResultInfo();
resultInfo.setType(ResultInfo.TYPE_FAIL);
resultInfo.setMessage("未知错误");
}
}
SubmitResultInfo submitResultInfo = new SubmitResultInfo(resultInfo);
return submitResultInfo;
}
前端页面返回处理json返回数据统一包装。
function sysusersave(){ //准备使用jquery提供的ajax Form提交方式 //将form的id传入,方法自动将form中的数据组成成key/value数据,通过ajax提交,提交方法类型为form中定义的method, //使用ajax form提交时,不用指定url,url就是form中定义的action //此种方式和原始的post方式差不多,只不过使用了ajax方式 //第一个参数:form的id。 //第二个参数:sysusersave_callback是回调函数。 //第三个参数:传入的参数, 可以为空 //第四个参数:dataType预期服务器返回的数据类型,这里action返回json。 //根据form的id找到该form的action地址 jquerySubByFId(‘userform‘,sysusersave_callback,null,"json"); } //统一封装方法,作用:提示信息 function message_alert(data){ //从返回的json数据中获取结果信息 var data_v = data.resultInfo; //提交结果类型 var type=data_v.type; //结果提示信息 var message=data_v.message; //alert(message); if(type==0){ //如果type等于0表示失败,调用 jquery easyui的信息提示组件 $.messager.alert(‘提示信息‘,message,‘error‘); }else if(type==1){ $.messager.alert(‘提示信息‘,message,‘success‘); }else if(type==2){ $.messager.alert(‘提示信息‘,message,‘warning‘); }else if(type==3){ $.messager.alert(‘提示信息‘,message,‘info‘); } } //ajax调用的回调函数,ajax请求完成调用此函数,传入的参数是action返回的结果 function sysusersave_callback(data){ message_alert(data) }
测试
(1)成功时返回
(2)失败时返回
标签:
原文地址:http://www.cnblogs.com/yangang2013/p/5671646.html