jQuery MiniUI

标题: spring porletMVC josn iserror [打印本页]

作者: Decmond    时间: 2012-10-29 13:43:51     标题: spring porletMVC josn iserror

xml:
<bean id="currentController"
        class="com.wisedu.isp.app.common.xdh.management.CurrentPhaseController">
        <property name="managementService" ref="managementServiceImpl"></property>
</bean>

jsp:

<c:set var="currentUrl">
    <portlet:renderURL>
        <portlet:param name="action" value="current"/>
    </portlet:renderURL>
</c:set> 跳转到后台

<div title="当前阶段">
         <div id="listbox2" class="mini-listbox" style="width:650px;height:450px;"
          allowCellEdit="true" allowCellSelect="true" multiSelect="true" idField="ID" textField="NAME"      
            showEmptyText="true" url='<cut value="${currentUrl}" escapeXml="false"/> '  >
            <div property="columns">
                <div header="当前阶段" field="ID"></div>
                <div header="阶段" field="NAME"></div>
                <div header="开始时间" field="STARDATE"></div>
                <div header="结束时间" field="ENDDATE"></div>
            </div>
        </div>                    
    </div>  

后台:
public class CurrentPhaseController {

    private ManagementService managementService;

    public void setManagementService(ManagementService managementService) {
        this.managementService = managementService;
    }

    protected ModelAndView handleRenderRequestInternal(RenderRequest request,
            RenderResponse response) throws Exception {
        System.out.println("bbbbbb");
        List state = managementService.getStatus();
        System.out.println(state.get(0));
        JSONArray jsonArray = JSONArray.fromObject(state);
        JSONObject jsobjcet = new JSONObject();
        jsobjcet.put("data", jsonArray);
        
        response.getWriter().write(jsobjcet.toString());
        return null;
    }

}

数据库操作:
public List getStatus(){
        String sqlString="select id,name from app_sc_status";
        List state=this.getJdbcTemplate().query(sqlString, new StatusModelRowMapper());
        return state;
    }




作者: factory    时间: 2012-10-29 14:27:08

你返回的json是什么样的?
请参考官网listbox的返回json的格式
作者: Decmond    时间: 2012-10-29 16:15:55

factory 发表于 2012-10-29 14:27
你返回的json是什么样的?
请参考官网listbox的返回json的格式

{"data":
          [
               {"enddate":"","id":"0","name":"草案提议","stardate":""},
               {"enddate":"","id":"1","name":"\t草案审核","stardate":""},
               {"enddate":"","id":"2","name":"草案附议","stardate":""},
               {"enddate":"","id":"3","name":"\t提案审核","stardate":""},
               {"enddate":"","id":"4","name":"上会提案","stardate":""},
               {"enddate":"","id":"5","name":"\t办理回复","stardate":""},
               {"enddate":"","id":"6","name":"\t结束","stardate":""}
         ]
}
作者: factory    时间: 2012-10-29 16:33:05

Decmond 发表于 2012-10-29 16:15
{"data":
          [
               {"enddate":"","id":"0","name":"草案提议","stardate":""},

[
               {"enddate":"","id":"0","name":"草案提议","stardate":""},
               {"enddate":"","id":"1","name":"\t草案审核","stardate":""},
               {"enddate":"","id":"2","name":"草案附议","stardate":""},
               {"enddate":"","id":"3","name":"\t提案审核","stardate":""},
               {"enddate":"","id":"4","name":"上会提案","stardate":""},
               {"enddate":"","id":"5","name":"\t办理回复","stardate":""},
               {"enddate":"","id":"6","name":"\t结束","stardate":""}
         ]
你的不对了,直接返回你那样的,肯定是error
作者: Decmond    时间: 2012-10-29 16:38:41

factory 发表于 2012-10-29 16:33
[
               {"enddate":"","id":"0","name":"草案提议","stardate":""},
               {"enddat ...

我改成了这种格式的json了

后台转换json的方法:
protected ModelAndView handleRenderRequestInternal(RenderRequest request,
                        RenderResponse response) throws Exception {
                List state = managementService.getStatus();
                JSONArray jsonArray = JSONArray.fromObject(state);
                System.out.println(jsonArray);
                response.getWriter().write(jsonArray.toString());
                return null;
        }

前台:

<div title="当前阶段">
                 <div id="listbox2" class="mini-listbox" style="width:650px;height:450px;"
              allowCellEdit="true" allowCellSelect="true" multiSelect="true" onvaluechanged="onListBoxValueChanged"      
                showEmptyText="true" url='<cut value="${currentUrl}" escapeXml="false"/>'>
                        <div property="columns">
                                <div header="当前阶段" field="id"></div>
                                <div header="阶段" field="name"></div>
                                <div header="开始时间" field="enddate"></div>
                                <div header="结束时间" field="enddate"></div>
                        </div>
                </div>                           
        </div>      

还是报json is error

[
     {"enddate":"","id":"0","name":"草案提议","stardate":""},
     {"enddate":"","id":"1","name":"草案审核","stardate":""},
     {"enddate":"","id":"2","name":"草案附议","stardate":""},
     {"enddate":"","id":"3","name":"\t提案审核","stardate":""},
     {"enddate":"","id":"4","name":"上会提案","stardate":""},
     {"enddate":"","id":"5","name":"办理回复","stardate":""},
     {"enddate":"","id":"6","name":"\t结束","stardate":""}
]
作者: factory    时间: 2012-10-29 16:51:19

本帖最后由 factory 于 2012-10-29 16:52 编辑
Decmond 发表于 2012-10-29 16:38
我改成了这种格式的json了

后台转换json的方法:


你这样,先把数据弄成静态的txt文本,然后参考demo那样读取静态数据,看看是否有问题。
如果数据格式一样,前台页面也一样,还是报错的话,那么估计是字段的问题,你再减少点字段,再试试。
这样一步步定位问题

作者: Decmond    时间: 2012-10-29 17:03:00

factory 发表于 2012-10-29 16:51
你这样,先把数据弄成静态的txt文本,然后参考demo那样读取静态数据,看看是否有问题。
如果数据格式一样 ...

你好,我把文件放到了txt中。通过引用txt文件…………,字段什么都没有改动。可以输出数据。

作者: factory    时间: 2012-10-30 09:31:01

Decmond 发表于 2012-10-29 17:03
你好,我把文件放到了txt中。通过引用txt文件…………,字段什么都没有改动。可以输出数据。
...

你用firebug或者httpwatch看下网络中返回的json数据是否有其他的字符串,
httpwatch的使用:http://www.blogjava.net/joan/articles/247271.html

作者: Decmond    时间: 2012-10-30 09:54:57

factory 发表于 2012-10-30 09:31
你用firebug或者httpwatch看下网络中返回的json数据是否有其他的字符串,
httpwatch的使用:http://www.blo ...

[attach]844[/attach]
能过 url=“http://myportal.wiscom.com.cn:82 ... amp;_=1351561456566
能够访问到json数据:
[{"ID":"0","NAME":"草案提议","ENDDATE":null,"STARDATE":null},{"ID":"1","NAME":"草案审核","ENDDATE":null,"STARDATE":null},{"ID":"2","NAME":"草案附议","ENDDATE":null,"STARDATE":null},{"ID":"3","NAME":"提案审核","ENDDATE":null,"STARDATE":null},{"ID":"4","NAME":"上会提案","ENDDATE":null,"STARDATE":null},{"ID":"5","NAME":"办理回复","ENDDATE":null,"STARDATE":null},{"ID":"6","NAME":"\t结束","ENDDATE":null,"STARDATE":null}]

但我看了下result 没有返回200,这原因该怎么找


作者: Decmond    时间: 2012-10-30 11:02:36

市教育局x 发表于 2012-10-30 10:59
呵呵你真厉害,佩服哦

????,你能看出什么原因吗??
作者: factory    时间: 2012-10-30 11:55:47

Decmond 发表于 2012-10-30 11:02
????,你能看出什么原因吗??

你把页面发我,我本地看下
作者: Decmond    时间: 2012-10-30 12:38:24

factory 发表于 2012-10-30 11:55
你把页面发我,我本地看下

问题我自己解决了。谢谢你的帮助!!
作者: niko    时间: 2012-10-30 15:20:10

能否问下是啥问题,是生成的JSON有问题,还是编码问题?




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2