日期:2014-05-16 浏览次数:20547 次
ExtJS是一个开发RIA的利器,在这里,将写一个Struts2和ExtJS整合的示例,以方便广大的开发者,学习者。。。
约定:
1、为了开发方便,不使用数据访问。
2、为了稍微体现一点分层思想,设置控制器层和业务逻辑层。
3、该示例的功能是使用ExtJS和JSON格式数据在JSP页面中显示一个表格,该表格将显示一些用户信息数据。用户信息数据直接来自编写的程序代码。
4、整个事例的开发结构图如下:
?
开发步骤:
以分层思想的开发步骤编写相应的代码。
第一步:导入相关的开发包,ExtJS库文件,配置web.xml文件,详细设置省略。(友情提示:使用了json-lib)
第二步:编写相应的实体类User.java,如下:
package com.wgs.pojo; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 949408143352061092L; private int id; private String name; private String gender; private int age; public User() { } public User(int id, String name, String gender, int age) { this.id = id; this.name = name; this.gender = gender; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + "]"; } }?
第三步:编写相应的Service业务逻辑层代码UserService.java,如下:
package com.wgs.service; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import com.wgs.pojo.User; public class UserService { public List<User> findAll() { List<User> list = new ArrayList<User>(); User u1 = new User(1001, "Wgssmart", "男", 21); User u2 = new User(1002, "Jane", "女", 21); User u3 = new User(1003, "Tom", "男", 21); User u4 = new User(1004, "Lily", "女", 21); User u5 = new User(1005, "Lucy", "女", 21); User u6 = new User(1006, "Jim", "男", 21); list.add(u1); list.add(u2); list.add(u3); list.add(u4); list.add(u5); list.add(u6); return list; } public String getAllJson() { return "{rows:" + JSONArray.fromObject(findAll()).toString() + "}"; } }
?第四步:编写相应的Action代码,UserAction.java,如下:
package com.wgs.action; import com.wgs.service.UserService; public class UserAction { private String jsonUser; public UserAction() { } public void setJsonUser(String jsonUser) { this.jsonUser = jsonUser; } public String getJsonUser() { return jsonUser; } public String execute() { System.out.println("Hello"); UserService us = new UserService(); System.out.println(us.getAllJson()); setJsonUser(us.getAllJson()); return "success"; } }
?第五步:配置struts.xml文件,详细配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <package name="user" namespace="/user" extends="struts-default"> <action name="listUser" class="com.wgs.action.UserAction"> <result name="success" type="dispatcher">/user_list.jsp</result> </action> </package> </struts>
?第六步:编写相应的ExtJS代码,作用是发送一个Ajax请求调用Struts框架中的Action,Action将返回JSON格式的用户信息数据,ExtJS将JSON格式的用户信息数据显示到Ext的表格组件中。如下:
SimpleGrid = function(config) { Ext.apply(this, config); this.colModel = new Ext.grid.ColumnModel( { defaults : { align : "center", sortable : true, menuDisabled : true, width : 120 }, columns : [ { header : "编号", dataIndex : "id" }, { header : "姓