我的java代码是这样的:package com.approval.action;import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.approval.cordys.client.CordysWSClientCommon;
import com.approval.model.common.ApprMainAll;public class GetTaskAction
{此处省略该方法代码,主要功能是给applist赋值
}
/**
*用于配置struts.xml的方法,以返回一个jsonArray数据给ext前台
* @return
*/
public String getJsonArray(){
/**
* jsonArray用于在extjs中显示列表,
* 其中task为每一个task的json对象,
* 而taskArray为所要传输到前台的Array。
*/
/* for(int i = 0;i<appList.size();i++)
{
task.put("ID"+i, appList.get(i).getTaskId().toString());
//taskArray.add(i, task);
task.put("class"+i, appList.get(i).getClass().toString());
taskArray.add(i, task);
task.clear();
}
if(!taskArray.isEmpty()){
return "success";
}else{
return "fail";
}*/
this.setTotalCount(appList.size());
JSONArray array = JSONArray.fromObject(appList);
this.jsonString = "{totalCount:" + this.getTotalCount() + ",results:" + array.toString() + "}";
return "SUCCESS";
}}然后,进行struts.xml的配置,我的配置是这样的:
<struts>
<package name="com.approval.action" extends="struts-default">
<action name="get_task" class="com.approval.action.GetTaskAction" method="getTask">
<result name="true">/ext-2.0.2/pages/get_task.jsp</result>
<result name="null">/ext-2.0.2/pages/no_task.jsp</result>
</action>
</package>
<package name="com.approval.action" extends="json-default">
<action name="get_task_json" class="com.approval.action.GetTaskAction" method="getJsonArray">
<result type="json" name="SUCCESS"></result>
</action>
</package>
</struts> JSP中的代码如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<s:property value="jsonString" escape="false"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>EXT2.0框架测试</title>
<link rel="stylesheet" href="ext-2.0.2/resources/css/ext-all.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="html.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="index.css" />
<script src="ext-2.0.2/adapter/jquery/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="ext-2.0.2/adapter/jquery/ext-jquery-adapter.js" type="text/javascript" charset="utf-8"></script>
<script src="ext-2.0.2/ext-all.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="ext-2.0.2/scripts/tasklisttest.js"></script>
</head>
<body>
<div id="grid"></div>
</body>
</html>
然后是tasklisttest.js中得代码是这样的:
Ext.onReady(function(){
// Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';
Ext.QuickTips.init();
var xg = Ext.grid;
//这里就是设置解析格式的地方,一定要和你的Model一样,要不然可是什么都得不到哦~~~~
var rd = new Ext.data.JsonReader({
//总记录数
totalProperty: 'totalCount',
//哪儿是数据的头,可以看action里面是怎么定义数据格式的,这里就是如何解析的
root: 'results',
//有那些字段呢?
fields:[
{name:'taskId'},
{name:'AppMain'},
{name:'StartDate'}
]
});
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy
({url: 'get_task_json.action',method:'POST'}),
//Url很关键,我就是因为没配好这个,POST方法很重要,你可以省略,让你看下错误也行的!耽误了一大堆时间!
reader:rd
});
ds.load();
var sm =new xg.CheckboxSelectionModel(); //CheckBox选择列
var cm =new xg.ColumnModel([
new Ext.grid.RowNumberer(), //行号列
sm,
{id:'orderId',header: "taskId", dataIndex: 'taskId'},
{header:"clas",dataIndex:'startDate'},
{header:"appmain",dataIndex:'AppMain'}
]);
cm.defaultSortable = true;
////////////////////////////////////////////////////////////////////////////////////////
// OrderGrid
//////////////////////////////////////////////////////////////////////////////////////// var ordergrid = new xg.GridPanel({
ds: ds,
sm: sm,
cm: cm,
width:1000,
height:500,
frame:true,
title:'选择处理以下待处理任务进行处理',
renderTo: document.body
});
ordergrid.render();});
不知道哪里出了问题,进行debug时候JS貌似不执行store中得url,不会跳转到java代码中的action。有哪位大神,出来帮帮忙啊, 不胜赶紧!在此跪求了!
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.approval.cordys.client.CordysWSClientCommon;
import com.approval.model.common.ApprMainAll;public class GetTaskAction
{此处省略该方法代码,主要功能是给applist赋值
}
/**
*用于配置struts.xml的方法,以返回一个jsonArray数据给ext前台
* @return
*/
public String getJsonArray(){
/**
* jsonArray用于在extjs中显示列表,
* 其中task为每一个task的json对象,
* 而taskArray为所要传输到前台的Array。
*/
/* for(int i = 0;i<appList.size();i++)
{
task.put("ID"+i, appList.get(i).getTaskId().toString());
//taskArray.add(i, task);
task.put("class"+i, appList.get(i).getClass().toString());
taskArray.add(i, task);
task.clear();
}
if(!taskArray.isEmpty()){
return "success";
}else{
return "fail";
}*/
this.setTotalCount(appList.size());
JSONArray array = JSONArray.fromObject(appList);
this.jsonString = "{totalCount:" + this.getTotalCount() + ",results:" + array.toString() + "}";
return "SUCCESS";
}}然后,进行struts.xml的配置,我的配置是这样的:
<struts>
<package name="com.approval.action" extends="struts-default">
<action name="get_task" class="com.approval.action.GetTaskAction" method="getTask">
<result name="true">/ext-2.0.2/pages/get_task.jsp</result>
<result name="null">/ext-2.0.2/pages/no_task.jsp</result>
</action>
</package>
<package name="com.approval.action" extends="json-default">
<action name="get_task_json" class="com.approval.action.GetTaskAction" method="getJsonArray">
<result type="json" name="SUCCESS"></result>
</action>
</package>
</struts> JSP中的代码如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<s:property value="jsonString" escape="false"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>EXT2.0框架测试</title>
<link rel="stylesheet" href="ext-2.0.2/resources/css/ext-all.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="html.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="index.css" />
<script src="ext-2.0.2/adapter/jquery/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="ext-2.0.2/adapter/jquery/ext-jquery-adapter.js" type="text/javascript" charset="utf-8"></script>
<script src="ext-2.0.2/ext-all.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="ext-2.0.2/scripts/tasklisttest.js"></script>
</head>
<body>
<div id="grid"></div>
</body>
</html>
然后是tasklisttest.js中得代码是这样的:
Ext.onReady(function(){
// Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';
Ext.QuickTips.init();
var xg = Ext.grid;
//这里就是设置解析格式的地方,一定要和你的Model一样,要不然可是什么都得不到哦~~~~
var rd = new Ext.data.JsonReader({
//总记录数
totalProperty: 'totalCount',
//哪儿是数据的头,可以看action里面是怎么定义数据格式的,这里就是如何解析的
root: 'results',
//有那些字段呢?
fields:[
{name:'taskId'},
{name:'AppMain'},
{name:'StartDate'}
]
});
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy
({url: 'get_task_json.action',method:'POST'}),
//Url很关键,我就是因为没配好这个,POST方法很重要,你可以省略,让你看下错误也行的!耽误了一大堆时间!
reader:rd
});
ds.load();
var sm =new xg.CheckboxSelectionModel(); //CheckBox选择列
var cm =new xg.ColumnModel([
new Ext.grid.RowNumberer(), //行号列
sm,
{id:'orderId',header: "taskId", dataIndex: 'taskId'},
{header:"clas",dataIndex:'startDate'},
{header:"appmain",dataIndex:'AppMain'}
]);
cm.defaultSortable = true;
////////////////////////////////////////////////////////////////////////////////////////
// OrderGrid
//////////////////////////////////////////////////////////////////////////////////////// var ordergrid = new xg.GridPanel({
ds: ds,
sm: sm,
cm: cm,
width:1000,
height:500,
frame:true,
title:'选择处理以下待处理任务进行处理',
renderTo: document.body
});
ordergrid.render();});
不知道哪里出了问题,进行debug时候JS貌似不执行store中得url,不会跳转到java代码中的action。有哪位大神,出来帮帮忙啊, 不胜赶紧!在此跪求了!
解决方案 »
- ajax返回结果后重试执行
- 菜鸟问题,请解答下谢谢
- 为什么自己写的网页在PC的谷歌浏览器可以显示,用安卓系统自带的浏览器就无法显示?求高手分析
- 求一段可以使一个层或是一个图片,随滚动条上下滚动的代码。谢谢,急,在线等,答完给分。。。
- 请问如何知道页面跳转到哪里去了?
- 一个窗口关闭问题!(IE 5.0)
- 请问 下拉框 能不能实现 可以下位选择又可以直接编写内容 ?????????
- 在线等待: 如何把用 javacript 打开WOrd文档.并设为只读?
- 如何解决JS文件的编码问题?
- 在ie6里怎么去掉标题栏?ie5里可以
- js居然有这样的bug
- URL中的参数包含中文顿号逗号分号,写入数据库出现乱码,求解决啊~~~
1、jsp页面中少引了一个 Ext-base.js
2、先看下你的action的路径在js中写的对不
3、配置文件需要修改
<package name="com.approval.action" extends="json-default">
<action name="get_task_json" class="com.approval.action.GetTaskAction" method="getJsonArray">
<result></result>
</action>
</package>另外 在你的Java后台代码public String getJsonArray()中 不能return 这个是异步的操作 是需要write到前台的 所以要将return.... 都换成 response.getWriter().write('.....')
现在的问题是我在getJsonArray()方法里面加了个断点,执行的时候根本就不会去读取Action。请问如何解决啊?