填坑记

2017-04-28  本文已影响14人  LOOK_LOOK

后台像前台传值时遇到一个问题:

坑1 使用console.log打印后台传来的json值时只显示[object Object],而不是json格式的值。

控制台
//ajaxPost是简单封装后的方法
ajaxPost(queryList, {
        "page" : curPage,
        "rows" : pageSize
    }, function(data) {
        console.log("结果是"+data);
    });

使用console.log打印后台传来的json值时只显示[object Object],而不是json格式的值。
原因:
猜测原因是字符串与data连接时自动转型为字符串了。
解决:

ajaxPost(queryList, {
        "page" : curPage,
        "rows" : pageSize
    }, function(data) {
        console.log(data);
    });
Paste_Image.png

坑2 mybatis报错“元素内容必须由格式正确的字符数据或标记组成”

Paste_Image.png

代码:

<select id="groupByMoney" resultType="hashmap">
        select count(*) as count,level from(
        select
        (case
        when registeredcaptial < 1000000 then 'LEVEL1'
        when
        registeredcaptial>=1000000 and registeredcaptial<2000000 then 'LEVEL2'
        when registeredcaptial>=2000000 and registeredcaptial<3000000 then
        'LEVEL3'
        when registeredcaptial>=3000000 then 'LEVEL4'
        end )
        as level from
        _company ) a
        group by level
    </select>

原因:
xml中的“<”、“>”被当做标签处理了,需要处理一下,类似于转义字符
解决:将包含<>的用<![CDATA[ 语句 ]]>包起来。
代码:

<select id="groupByMoney" resultType="hashmap">
        select count(*) as count,level from(
        select
        (case
        <![CDATA[when registeredcaptial < 1000000 then 'LEVEL1'
        when
        registeredcaptial>=1000000 and registeredcaptial<2000000 then 'LEVEL2'
        when registeredcaptial>=2000000 and registeredcaptial<3000000 then
        'LEVEL3'
        when registeredcaptial>=3000000 then 'LEVEL4'
        end ]]>)
        as level from
        _company ) a
        group by level
    </select>
上一篇下一篇

猜你喜欢

热点阅读