maskainv 2009-04-23 17:11
浏览 251
已采纳

EXT中的数据读取

[color=red][size=large]现在要达到的一个目的是 显示一个信息页面A(grid),里面的数据信息是通过Action得到的数据集(ArrayList)[/size][/color]

我现在做个一个Action 可以得到一个ArrayList并 setAttrbute到request中。并且返回到了一个页面B中,B 将ArrayList转换成了JSON 数据格式并且 输入到 B的页面中。

我怎么能让A得到这些数据呢?
var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
method:'get',
url : '../display.do'
//url : '/display.do' !NO!
//url : 'display.do' !NO!
//url : 'http://localhost:8080/Prj5_3/display.do'
})
这个里面的url可以让他做Action吗?

工程我打了个包 非常感谢你的指点~

[b]问题补充:[/b]
js代码如下:

[code="js"]

/**
 * 生成列模型
 */
var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
    // 用户编号
    header : '学号',
    dataIndex : 'stuId',
    sortable : true
}, {
    // 用户真实姓名
    header : '姓名',
    dataIndex : 'stuName',
    sortable : true
}, {
    // 用户性别
    header : '性别',
    dataIndex : 'stuSex',
    sortable : true
}, {
    // 用户所在部门名称
    header : '出生年月',
    dataIndex : 'stuBir',
    sortable : true
},{
    // 操作列
    header : '家庭住址',
    dataIndex : 'stuAdd'
}]);

/**
 * 声明数据适配器,将数据源与列模型绑定
 */
var store = new Ext.data.Store({
    proxy : new Ext.data.HttpProxy({
        method:'get',
        url : '../display.do'
        //url : '/display.do'    !NO! 
        //url : 'display.do'       !NO!
        //url : 'http://localhost:8080/Prj5_3/display.do'
    }),
    reader : new Ext.data.JsonReader({
        totalProperty : 'totalProperty',
        root : 'root'
    }, [{
        name : 'stuId',
        mapping : 'stuId'
    }, {
        name : 'stuName',
        mapping : 'stuName'
    }, {
        name : 'stuSex',
        mapping : 'stuSex'
    }, {
        name : 'stuBir',
        mapping : 'stuBir'
    }, {
        name : 'stuAdd',
        mapping : 'stuAdd'
    }])
});

/**
 * 生成Bbar,用于分页显示
 */
var bbar = new Ext.PagingToolbar({
    pageSize : 10,
    store : store,
    displayInfo : true,
    displayMsg : '显示第{0}条到{1}条记录,一共{2}条',
    emptyMsg : '没有记录'
});

/**
 * 声明一个Grid,列表显示信息
 */
var grid = new Ext.grid.GridPanel({
    el : 'UIgrid',
    title : '用户信息',
    height : 430,
    trackMouseOver : false,
    loadMask : {
        msg : '正在加载数据,请稍后.....'
    },
    ds : store,
    cm : cm,
    sm : new Ext.grid.RowSelectionModel(),
    bbar : bbar

});



// =================================渲染呈现========================================
/**
 * 渲染呈现Grid,Store初始化
 */
grid.render();
store.load({
    params : {
        start : 0,
        limit : 10
    }
});

})

[/code]

我好像没有定义回调函数,怎么用的啊?我看那个龙门镖局的例子里面是这样的。所以我就照着写的

[b]问题补充:[/b]
忘记说了 我在显示页面A的时候并没有触发Action事件~~~~即根本没有做Servlet的doGet

[b]问题补充:[/b]
url : '/Prj5_3/display.do' 现在确实能调用Action了 但是前台页面读取不到返回的内容~~~~郁闷

  • 写回答

5条回答 默认 最新

  • zhoujuan520 2009-04-24 08:08
    关注

    有以下几个问题
    没有触发Action的原因是因为你的请求路径写错了
    [code="js"]
    var store = new Ext.data.Store({
    url : '/Prj5_3/display.do',//可以这样,或者url:'display.do',当你前面加了一个斜杠的时候就是直接引用到跟路径了,类似http://localhost:8080/display.do 这样你肯定就请求不到了.所以这里一定要注意
    reader : new Ext.data.JsonReader({
    totalProperty : 'totalProperty',
    root : 'root'
    }, [{
    name : 'stuId',
    mapping : 'stuId'
    }, {
    name : 'stuName',
    mapping : 'stuName'
    }, {
    name : 'stuSex',
    mapping : 'stuSex'
    }, {
    name : 'stuBir',
    mapping : 'stuBir'
    }, {
    name : 'stuAdd',
    mapping : 'stuAdd'
    }])
    });
    [/code]

    其次
    [quote]return new ActionForward("/DB2JSON.jsp");[/quote]
    你这里没有必要跳转到另外一个单独的jsp页面去处理json数据,你完全就可以再这个Action方法里面处理,最后Action返回空就可以了 return null;
    如果你喜欢放到jsp页面去处理的话,Action最后的返回语句也不用
    return new ActionForward("/DB2JSON.jsp"); 这样写,在Action方法里面已经给你传递过来一个ActionForward对象了.不比在新建一个对象
    [code="java"]public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
    HttpServletResponse response) {
    //.....
    return mapping.findForward("/Prj5_3/DB2JSON.jsp");//这样写就可以了,注意你这里路径又写错了.系统会找不到DB2JSON.jsp这个页面的.

    }[/code]
    另外你很多地方命名不规范,比如jsp页面的命名最好都小写,项目名称最好小写,例如(prj5_3/db2json.jsp) 这样是规范的写法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退