初探ExtJS(2)

二、建立第一个Demo。实现查数据库显示到页面

步骤:1.建立MySQL数据库表

2.整合SSH框架

3.用ExtJS显示

关键注意事项:

Ext.data.JsonReader中root的含义,比如,请求的action返回的JSON

此时root属性为应这样填写:root:list

1、建立MySQL数据库。如图2-1所看到的

图2-1

2、整合SSH框架

因为ExtJS处理的为JSON数据,则应将action返回的置为JSON格式

Action类例如以下所看到的。返回为list

package com.hanhexin.action;

import java.util.ArrayList;
import java.util.List;

import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.hanhexin.entity.Person;
import com.hanhexin.service.IPersonService;
import com.opensymphony.xwork2.ActionSupport;

@Component("personAction")
@Scope("prototype")
public class PersonAction extends ActionSupport{

	private Person person;

	@Autowired
	private IPersonService personService;

	List<Person> list = new ArrayList<Person>();

	public String list(){
		person = new Person();
		list = personService.getListByPerson(person, 1, 10);
		System.out.println(list.size()+"action+++++++++++++++++++++");
		return SUCCESS;
	}

	public List<Person> getList() {
		return list;
	}

	public void setList(List<Person> list) {
		this.list = list;
	}
}

配置struts.xml文件返回JSOn。例如以下所看到的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="person" extends="json-default" namespace="/">
		<action name="list" class="com.hanhexin.action.PersonAction" method="list">
		    <result name="success"></result>
			<result type="json">
				<param name="list"></param>
			</result>
		</action>
	</package>
</struts>

一定要设

<result type="json">...</result>

3、用ExtJS显示到页面 JSP文件例如以下所看到的

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'main.jsp' starting page</title>

	<link rel="stylesheet" type="text/css" media="all" href="extjs/resources/css/ext-all.css" />
	<script type="text/javascript" src="extjs/ext-all.js"></script>
	<script type="text/javascript" language="javascript">
    Ext.onReady(function(){
/*    var cm = new Ext.grid.ColumnModel([
        {header:'id',dataIndex:'id'},
        {header:'姓名',dataIndex:'name'},
        {header:'电话',dataIndex:'phone'}
    ]);  */

    var proxy = new Ext.data.HttpProxy({url:'list.action'});  

    var record = Ext.data.Record.create([
        {name:'id'},
        {name:'name'},
        {name:'phone'}
    ]);  

    var reader = new Ext.data.JsonReader({
    	root:'list'
    },record);  

    var store = new Ext.data.Store({
        proxy:proxy,
        reader:reader
    });  

    store.load();  

    var grid = new Ext.grid.GridPanel({
        title:'表格',
      /*  cm:cm,  */
        columns: [
        { header: 'ID',  dataIndex: 'id' },
        { header: '姓名', dataIndex: 'name', flex: 1 },
        { header: '电话', dataIndex: 'phone' }
        ],
        store:store,
        width:450,
        height:300,
        autoExpandColumn:2,
        renderTo:Ext.getBody()
    });
});
</script>
  </head>
  <body>
  </body>
</html>

解释

1)Ext.onReady为Ext.Loader.onReady的别名

ExtJS API中的解释例如以下所看到的

此时用到的仅仅是第一个參数,后面两个參数没实用到

2)var proxy = new Ext.data.HttpProxy({url:‘list.action‘});

请求action,当中返回的数据为

封装到了var proxy中

3)var record = Ext.data.Record.create()。用于解析JSON,当中属性为JSON中相相应的数据项

4)var reader = new Ext.data.JsonReader({

root:‘list‘

},record);

用于解析JSON。当中root为JSON中的list,即2)中的list

5)var store = new Ext.data.Store()用于存储从action返回的。并由JsonReader解析的数据。

6)var grid = new Ext.grid.GridPanel()用于显示数据

当中renderTo:Ext.getBody()    保证了显示到html页的body中。

4、终于效果如图2-3所看到的

图2-3

源代码下载地址:http://download.csdn.net/detail/hhxin635612026/7602631

时间: 2024-10-24 15:18:55

初探ExtJS(2)的相关文章

初探ExtJS(1)

一.配置资源文件 1.下载资源文件http://download.csdn.net/detail/hhxin635612026/7602027 2.新建myeclipse项目,放入相应位置,如图1-1所示 图1-1 3.在index.jsp中引入javascript等资源文件 <link rel="stylesheet" href="extjs/resources/css/ext-all.css" type="text/css">&l

Extjs视频教程_快速上手Extjs4.2实战开发

Extjs视频教程_快速上手Extjs4.2实战开发快速上手Extjs4.2并熟练搭建基于MVC4+FluentData+Spring.net和T4模板的企业级项目架构适合人群:中级课程分类:.NET+ExtJs课时数量:76课时用到技术:Extjs4.2,MVC4,FluentData,T4,Spring.net涉及项目:基于Extjs4.2的丰富案例.一个独立的企业级架构和综合演示案例咨询qq:1840215592 Extjs视频教程课程大纲:(1)Extjs4.2理论部分(风舞烟老师老师主

Extjs 4.2 设置buttontext为中文

可以在Ext.QuickTips.init();后加入如下代码: Ext.MessageBox.buttonText = { ok : "确定", cancel : "取消", yes : "是", no : "否" }; Extjs 4.2 设置buttontext为中文,布布扣,bubuko.com

进阶之初探nodeJS

一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node. so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS". 好了,侃了这多,那么我们即将实现一个

ExtJs基础知识总结:弹窗(四)

概述 Extjs弹窗可以分为消息弹窗.对话框,这些弹窗的方式ExtJs自带的Ext.Msg.alert就已经可以满足简单消息提示,但是相对复杂的提示,比如如何将Ext.grid.Panel的控件显示嵌套到widget.window,然后随着widget.window的show方法展示到页面上哪?下面有几种方案思路 思路一.直接将gridpandel填充到widget.window对应的Items 代码如下: var InvoiceItemGrid = Ext.create('Ext.grid.P

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

ExtJs布局之viewport

<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="ExtJs/

ExtJS如何取出某个DIV中的内容

在使用ExtJS的时候,不免我们要在某个DIV中取出DIV的内容,因此通过查找api和相关资料应该向如下方式进行取值 1 Ext.onReady(function(){ 2 var panel = new Ext.Panel({ 3 title:'Ext.core.domhelper.applystyles示例', 4 width:300, 5 height:200, 6 renderTo:'sub1', 7 html:"<div id='div1' style='height:160px

[转载]HDFS初探之旅

转载自 http://www.cnblogs.com/xia520pi/archive/2012/05/28/2520813.html , 感谢虾皮工作室这一系列精彩的文章. Hadoop集群(第8期)_HDFS初探之旅 1.HDFS简介 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上.它所具有的高容错.高可靠性.高可扩展性.高