zoukankan      html  css  js  c++  java
  • 学习角色管理模块错误总结---基于SpringMVC框架

       总是不明白jsp页面与controller交互,前台数据如何传到后台,后台数据如何传到前台。

    一,保存

        写保存功能时,jsp写了一个function,当保存成功时,将result置为“1”,弹出提示框“保存成功”,不然置“0”,提示失败。

        jsp和controller之间是通过把数据转为json形式传输的,当前台将需要保存的表单提交,数据转为json传到后台。springMVC框架会检索javabean,new一个bean进行匹配,使得数据属性不变,前台是Role对象,在controller中就可以直接处理Role对象,而不需要进行json转换过程。前台是什么,后台直接用什么,属性也一样,前台String id ,后台也是String id。

        保存时,controller传入参数直接可以为Role对象,然后进行保存数据库操作。

        向前台返回标志位时,使用Map或者Response对象,均可以自动转为json传输,或者String--转为json---推送前台。

    //角色的保存功能controller部分

    @ResponseBody @RequestMapping(value = "/saveRole" ,method = RequestMethod.POST) public Map<String,Object>saveRole(Role param)throws IOException{ String msg; Map<String,Object> result = new HashMap<String,Object>(); try{ if (StringUtils.isNotEmpty(param.getRoleCode())&&StringUtils.isNotEmpty(param.getRoleName())){ if(kroleService.isExistRoleCode(param)){ result.put("result","-1"); }else{ msg = kroleService.saveRole(param); result.put("result", msg); } }else result.put("result", "-1"); }catch(Exception e){ result.put("result", "-1"); } return result; } //为对比,引入其他模块代码。 @RequestMapping(value = "task/saveTaskPlan") public void saveTaskPlan(TaskPlan taskPlan, HttpServletResponse response){ String resultMessage = "保存成功!"; try { resultMessage = taskPlanService.saveTaskPlan(taskPlan); logService.saveLog("保存成功"); } catch (Exception e) { resultMessage = "保存失败!"; logService.saveErrorLog(resultMessage, e); LogUtils.error(resultMessage+e.getMessage(), e); } SpringUtil.jsonToStr(response, resultMessage); }

     保存功能前台的jQuery的function代码

     function save(){
        	var params = $("#searchForm").serializeArray();//searchForm为提交表单id
        	
        		$.ajax({
        			dataType:"json",                       //接收数据格式
        			type:"POST",                           //数据传送方式
        			url:"${ctx}/Krole/saveRole",           //后台处理程序
        			data:params,                           //要传递的数据
        			success:function(data){                //data对应后台的"result"
        				if(data.result == "1"){
        					layer.alert("保存成功");
        					cancel();
        					
        				}else if(data.result == "-1"){
        					layer.alert("保存失败");
        				}else{
        					layer.alert(data.result);
        				}
        			},
        			error: function(e){
        				for(var k in e){
        					console.log(k + "====="+e[k]);
        				}
        				layer.alert("保存失败");
        			}
        		});
        	
        }
    
  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/kunsunshine/p/6428674.html
Copyright © 2011-2022 走看看