zoukankan      html  css  js  c++  java
  • Action中使用Json

    1.前台页面中的ajax:

    //根据部门查询该部门下的用户列表
            function doSelectDept(){
                //1、获取部门
                var dept = $("#toCompDept option:selected").val();
                if(dept != ""){
                    //2、根据部门查询列表
                    $.ajax({
                        url:"${basePath}sys/home_getUserJson2.action",
                        data:{"dept":dept},
                        type:"post",
                        dataType:"json",//返回数据类型
                        success: function(data){
                            //2.1、将用户列表设置到被投诉人下拉框中
                            if(data != null && data != "" && data != undefined){
                                if("success" == data.msg){
                                    var toCompName = $("#toCompName");
                                    toCompName.empty();
                                    $.each(data.userList, function(index, user){
                                        toCompName.append("<option value='" + user.name + "'>" + user.name + "</option>");
                                    });
                                } else {alert("获取被投诉人列表失败!");}
                            } else {
                                alert("获取被投诉人列表失败!");
                            }
                        },
                        error:function(){alert("获取被投诉人列表失败!");}
                    });
                } else {
                    //清空被投诉人列表下拉框
                    $("#toCompName").empty();
                }
            }

    后台Action中输出json格式文本:

    方法一:直接用输出流输出Json格式的文本内容。

    要在项目中引入对应的包:找到struts2.x 的lib包,向本项目lib包加入“json-lib-2.3-jdk15.jar,ezmorph-1.0.6.jar,commons-beanutils-1.8.0.jar”

        public void getUserJson(){
            try {
                //1、获取部门
                String dept = ServletActionContext.getRequest().getParameter("dept");
                if(StringUtils.isNotBlank(dept)){
                    QueryHelper queryHelper = new QueryHelper(User.class, "u");
                    queryHelper.addCondition("u.dept like ?", "%" + dept);
                    //2、根据部门查询用户列表
                    List<User> userList = userService.findObjects(queryHelper);
                    //创建Json对象
                    JSONObject jso = new JSONObject();
                    jso.put("msg", "success");
                    jso.accumulate("userList", userList);
                    
                    //3、输出用户列表以json格式字符串形式输出
                    HttpServletResponse response = ServletActionContext.getResponse();
                    response.setContentType("text/html");
                    ServletOutputStream outputStream = response.getOutputStream();
                    outputStream.write(jso.toString().getBytes("utf-8"));
                    outputStream.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    方法二:使用struts2-json-plugin-2.x.jar 包,由strutsaction中的变量组装成Json对象。

    加入 struts2-json-plugin-2.x.jar 到项目中,在*-struts.xml中配置对应请求方法的返回类型为json。如下:

    Action中:

        public String getUserJson2(){
            try {
                //1、获取部门
                String dept = ServletActionContext.getRequest().getParameter("dept");
                if(StringUtils.isNotBlank(dept)){
                    QueryHelper queryHelper = new QueryHelper(User.class, "u");
                    queryHelper.addCondition("u.dept like ?", "%" +dept);
                    //2、根据部门查询用户列表
                    return_map = new HashMap<String, Object>();
                    return_map.put("msg", "success");
                    return_map.put("userList", userService.findObjects(queryHelper));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return SUCCESS;
        }

    配置文件中:

        <package extends="json-default" namespace="/sys" name="sysHomeJson-action">
            <action name="home_getUserJson2" method="getUserJson2"
                class="cn.itcast.home.action.HomeAction">
                <result type="json">
                    <param name="root">return_map</param>
                </result>
            </action>
        </package>

    在返回类型中指定了root参数,意思是只返回并格式化这个类属性为json。【注意:需要利用struts返回json对象的变量,要有对应的get方法。】

  • 相关阅读:
    九九乘法表
    获取1-10 的和,并打印 2.1-100 之间 7 的倍数的个数,并打印
    1-100之间 7 的倍数的个数,并打印
    无限循环的最简单的表现形式
    for 和 while 区别
    do while 和 while 区别
    if 和 switch 比较
    星期和月份
    【运筹优化】求职与工作思考 -求职需要的技能(一)
    python 在线笔试的OJ输入输出总结
  • 原文地址:https://www.cnblogs.com/lm970585581/p/7372065.html
Copyright © 2011-2022 走看看