• java后台json如何传递到jsp中解析


    需求:  系统前端jsp使用的是easyUi的datagrid展示了一些任务信息,任务信息中有个状态信息显示的值是数字,

            需要根据后台保存的映射关系,将状态显示为描述信息。

     

    原来的jsp前端显示:

     

    解决方案,在后台使用创建json数据,然后传递到前台jsp页面中,并使用eval解析后获取值对应的描述,操作如下:

    1. 创建json数据(java)

        //任务列表
        public static final String TASK_PENDING = "0"; 
        //命令处理成功
        public static final String TASK_COMMAND_SUCCESS = "1";    
        //命令处理失败
        public static final String TASK_COMMAND_FAILED = "2";
        //下载处理成功
        public static final String TASK_DOWN_SUCCESS = "3";
        //下载处理失败
        public static final String TASK_DOWN_FAILED = "4";
        //邮件发送成功
        public static final String TASK_MAIL_SUCCESS = "5";
        //邮件发送失败
        public static final String TASK_MAIL_FAILED = "6";
        //处理成功
        public static final String TASK_COMPLETE = "99";
    
    
        public static String getStatusJson(){
    
            JSONObject statusJson = new JSONObject();
            statusJson.put(TASK_PENDING, "待处理");
            statusJson.put(TASK_COMMAND_SUCCESS, "脚本执行成功");
            statusJson.put(TASK_COMMAND_FAILED, "脚本执行失败");
            statusJson.put(TASK_DOWN_SUCCESS, "文件下载成功");
            statusJson.put(TASK_DOWN_FAILED, "文件下载失败");
            statusJson.put(TASK_MAIL_SUCCESS, "邮件发送成功");
            statusJson.put(TASK_MAIL_FAILED, "邮件发送失败");
            statusJson.put(TASK_COMPLETE, "完成");
            
            return statusJson.toString();
        }

    2. 传值(java)

    String statusJson = Constants.getStatusJson();
    resultMap.put("statusJson",statusJson);

    3. 前端jsp中使用js获取值(js)

    //根据传入的状态代码获取状态描述
    function getStatusDesc(key){
        var obj = eval("(" + '${statusJson}' + ")");
        return obj[key];
    }    

    4. 使用datagrid的formatter调用function

     1 { 
     2     field: 'status', 
     3     title: '状态', 
     4     halign: 'left',
     5     align : 'left',
     6     width : '100',
     7     formatter:function(value,row,index){
     8         var desc = getStatusDesc(value);
     9         return desc;
    10     }
    11 },
    view code

    最终显示结果如下:

    后话: 刚开始是在后台使用map作为传值,js中解析map比较复杂,后来改用json后方便多了。

  • 相关阅读:
    C# 多线程编程及其几种方式
    多态有几种表现形式
    闭包的理解
    C# 泛型类型约束 where
    HTML扩展--HTMLTestRuner HTML测试报告
    编写web自动化测试
    unittest单元测试框架之认识unittest
    自动化测试模型
    处理HTML5视频播放、滑动解锁
    操作Cookie调用JavaScript
  • 原文地址:https://www.cnblogs.com/30go/p/6957067.html
Copyright © 2020-2023  润新知