黑马程序员技术交流社区

标题: 【上海校区】spring mvc JSON对象 局部刷新 [打印本页]

作者: 梦缠绕的时候    时间: 2019-2-14 10:12
标题: 【上海校区】spring mvc JSON对象 局部刷新
第一步:导入JSON包
fastjson-1.2.47.jar
fastjson-1.2.47-sources.jar //源码

第二步:建立控制层的处理方法,方法前加@ResponseBody注解,异步处理,返回数据,不是返回视图

@RequestMapping("/useradd")
    @ResponseBody
    public Object userCodeIsExist(String username){
        Map<String,String> resultMap=new HashMap<String,String>();
        if(StringUtils.isNullOrEmpty(username)){  //判断字符串是空引用,或值为空。如username=null 或者如username="" 结果为true
            resultMap.put("username","flase");
            //return "flase";
        }else{
            resultMap.put("username","true");
            //return "true";
        }
        return JSONArray.toJSONString(resultMap);

    }

这里map也可以换成java baen 对象,返回JSON对象,也可以返回字符串。

第三步:视图层

<script type="text/javascript">
        function submitCommentTextarea(){
            var username=$("#username").val();
            $.getJSON("/chun/index/useradd","username="+username,submitCommentCallBack);
        }
        function submitCommentCallBack(data){
            if(data.username=="true"){
                alert("评论成功")
                $("#h1Index").html("成功");
            }else{
                alert("评论失败");
                $("#h1Index").html("失败");
            }
        }
    </script>

如果传送JSON对象去服务器,需要JSON.stringify(strObject) 转成JSON字符串后在传送

表单元素.serializeArray():from表单序列化

$.getJSON 接收JSON对 象。
get()或者 get()或者get()或者post()返回JSON字符串, $.parseJSON( data );转换成JSON对象;

get()和 get()和get()和post()写法一样。只是$get()方法需要在Tomcat服务器 catalina.properties配置文件里加上下面一条语句,这样传参才认识{}。
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

如需设置请求前调用函数beforeSend,请求失败时被调用的函数error,请求完成后调用的函数complete,设置请求超时时间timeout,都只能用$.ajax({})方法。

解决中文乱码问题:

在 springmvc-servlet.xml设置:
<mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <!--设置消息处理器的编码格式-->
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

解决JSON数据传递的日期格式:
第一种:
在java bean日期属性加上注解 @JSONField(format = “yyyy-MM-dd”)

        @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private Date createDate;



作者: 不二晨    时间: 2019-2-14 14:37
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2