Spring と YUI Data テーブルに関するプロジェクトを行っています。
コントローラーを使用して JSON 文字列を返し、ビューで JSON 文字列をデータ ソースとして使用してデータ テーブルを生成します。しかし、どういうわけかデータテーブルに「データエラー」が表示されます。
これが私のコントローラのコードです:
@RequestMapping(value = "/report") public ModelAndView getViolationReport(Long violation_num){
ComplLog origViolation = null;
//HashMap<Long, BRMap> logdetailsmap = new HashMap<Long, BRMap>();
Map<String,String> map = new HashMap<String, String>();
map.put("col1", "value1");
map.put("col2", "value2");
map.put("col3", "value3");
map.put("col4", "value4");
map.put("col5", "value5");
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
list.add(map);
ModelAndView mav = new ModelAndView();
mav.addObject("detailList", list);
mav.setViewName("GetViolationReport"); //return the model to the GetViolationReport.jsp
return mav;
}
ここに私のindex.jspファイルがあります:
<% response.sendRedirect("/app/ViolationReportService.app"); %>
これが私のビュー、GetViolationReport.jsp です。
<body class="yui-skin-sam" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
<div id="scroller" class="scrollPane">
<c:out value = "${detailList}" />
</div>
<div id="basic"></div>
</body>
<script type="text/javascript">
YAHOO.util.Event.addListener(window, "load", function() {
YAHOO.example.Basic = function() {
var myColumnDefs = [
{key:"col1", sortable:true, resizeable:true},
{key:"col2", sortable:true, resizeable:true},
{key:"col3", sortable:true, resizeable:true},
{key:"col4", sortable:true, resizeable:true},
{key:"col5", sortable:true, resizeable:true}
];
var myDataSource = new YAHOO.util.XHRDataSource("app/violationreport/report");
myDataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
myDataSource.responseSchema = {
metaFields : {
totalRecords : "detailmap.totalRecordsFound",
recordsReturned : "detailmap.totalRecordsFound",
invocationStatus : "invocationStatus",
startIndex : 0,
executionStatusMessage : "executionStatusMessage"
},
resultsList : "detailList",
fields : [ "col1","col2","col3","col4","col5" ]
}
var myDataTable = new YAHOO.widget.DataTable("basic",
myColumnDefs, myDataSource, {initialLoad: true, caption:"DataTable Caption"});
return {
oDS: myDataSource,
oDT: myDataTable
};
}();
});
</script>
そして、actoolkit-config.xml は次のようになります。
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="favorParameter" value="true" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="html" value="text/html" />
<entry key="plain" value="text/plain" />
<entry key="octet" value="application/octet-stream" />
</map>
</property>
<property name="viewResolvers">
<list>
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
<property name="defaultContentType" value="application/json" />
</bean>
コンソールにエラーはありませんが、データ テーブルを生成するはずの URL に移動すると、定義した列を含むデータ テーブルが表示されますが、コンテンツには「データ エラー」が表示されます。
誰かがこれで私を助けてくれますか?