下载地址:

http://download.csdn.net/detail/cyberzhaohy/7348451

加入了json包:jackson-all-1.8.5.jar,项目结构例如以下:

測试网址:

http://localhost:9090/jquery-easyui-1.2.6BasedonStruts/layout.jsp

效果图例如以下:

配置文件web.xml:

<?xml
version="1.0"
encoding="UTF-8"?>

<web-app
version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:beans.xml</param-value>

</context-param>

<filter>

<filter-name>openSessionInView</filter-name>

<filter-class>

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

</filter-class>

<init-param>

<param-name>sessionFactoryBeanName</param-name>

<param-value>sf</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>openSessionInView</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>

beans.xml配置,上面配置文件黄色代码sf使用以下黄色代码配置:

<?

xml
version="1.0"
encoding="UTF-8"?

>

<beans
xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.5.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<context:annotation-config/>

<context:component-scanbase-package="com.xdy"></context:component-scan>

<bean

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property
name="locations">

<value>classpath:jdbc.properties</value>

</property>

</bean>

<bean
id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property
name="driverClassName"

value="${jdbc.driverClassName}"/>

<property
name="url"
value="${jdbc.url}"/>

<property
name="username"
value="${jdbc.username}"
/>

<property
name="password"
value="${jdbc.password}"
/>

</bean>

<bean
id="sf"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property
name="dataSource"ref="dataSource"/>

<property
name="packagesToScan">

<list>

<value>com.xdy.registration.model</value>

</list>

</property>

<property
name="hibernateProperties">

<props>

<prop
key="hibernate.dialect">

org.hibernate.dialect.OracleDialect

</prop>

<prop
key="hibernate.show_sql">true</prop>

</props>

</property>

</bean>

<bean
id="hibernateTemplate"

class="org.springframework.orm.hibernate3.HibernateTemplate">

<property
name="sessionFactory"
ref="sf"></property>

</bean>

<bean
id="txManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property
name="sessionFactory"
ref="sf"></property>

</bean>

<aop:config>

<aop:pointcut
id="bussinessService"

expression="execution(public* com.xdy.registration.service.*.*(..))"></aop:pointcut>

<aop:advisor
pointcut-ref="bussinessService"

advice-ref="txAdvice"/>

</aop:config>

<tx:advice
id="txAdvice"
transaction-manager="txManager">

<tx:attributes>

<tx:method
name="exists"read-only="true"
/>

<tx:method
name="add*"
propagation="REQUIRED"
/>

</tx:attributes>

</tx:advice>

</beans>

控制逻辑struts.xml配置:

<!DOCTYPE
struts PUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

<constant
name="struts.i18n.encoding"
value="GBK"/>

<package
name="registration"
extends="struts-default">

<action
name="u"

class="com.xdy.registration.action.UserAction">

<result
name="success">/registerSuccess.jsp</result>

<result
name="fail">/registerFail.jsp</result>

<result
name="list">/UserList.jsp</result>

<result
name="load">/User.jsp</result>

</action>

</package>

</struts>

UserAction.java代码例如以下:

package com.xdy.registration.action;

import java.io.IOException;

import java.io.StringWriter;

import java.util.List;

import org.apache.struts2.ServletActionContext;

import org.codehaus.jackson.JsonFactory;

import org.codehaus.jackson.JsonGenerator;

import org.codehaus.jackson.map.ObjectMapper;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

import com.xdy.registration.model.MyUser;

import com.xdy.registration.service.UserManager;

import com.xdy.registration.vo.UserRegisterInfo;

//@Component("user")

//@Component("u")

//@Scope("prototype")

publicclass UserAction
extends ActionSupport
implements ModelDriven {

public Object getModel() {

//
TODO Auto-generatedmethod stub

returninfo;

}

/*

* private Stringusername;; private String password; private String

* password2;

*

* public StringgetUsername() { return username; }

*

* public voidsetUsername(String username) { this.username = username; }

*

* public StringgetPassword() { return password; }

*

* public voidsetPassword(String password) { this.password = password; }

*

* public StringgetPassword2() { return password2; }

*

* public voidsetPassword2(String password2) { this.password2 = password2; }

*/

private UserRegisterInfo
info =
new UserRegisterInfo();

private UserManager
userManager;

private List<MyUser>
users;

private MyUser
myUser;

public MyUser getMyUser() {

returnmyUser;

}

publicvoid setMyUser(MyUser myUser) {

this.myUser = myUser;

}

public String list() {

this.users =
this.userManager.getUsers();

return"list";

}

public List<MyUser> getUsers() {

returnusers;

}

publicvoid setUsers(List<MyUser> users) {

this.users = users;

}

public UserAction() {

System.out.println("useractioncreated!");

}

/*

* public UserAction() {ApplicationContext ctx = new

*ClassPathXmlApplicationContext("beans.xml"); um = (UserManager)

*ctx.getBean("userManager"); }

*/

@Override

public String execute()
throws Exception {

System.out.println(info.getUsername());

/*

* if (password !=password2) { return "fail"; }

*/

MyUser u = new MyUser();

u.setUsername(info.getUsername());//username);

u.setPassword(info.getPassword());//password);

if (userManager.exists(u)) {

return"fail";

}

userManager.add(u);

return"success";

}

publicvoid datagird() {

list();

writeJson(this.users);

}

publicvoid writeJson(Object o) {

String json=getJsonString(o);

try{

ServletActionContext.getResponse().getWriter().write(json);

}catch(IOException e){

e.printStackTrace();

}

}

public String getJsonString(Object o) {

ObjectMapper om=new ObjectMapper();

StringWriter sw=new StringWriter();

try{

JsonGenerator jg=new JsonFactory().createJsonGenerator(sw);

om.writeValue(jg, o);

jg.close();

}

catch(IOException e){

e.printStackTrace();

}

return sw.toString();

}

public UserManager getUserManager() {

returnuserManager;

}

publicvoid setUserManager(UserManager userManager) {

this.userManager = userManager;

}

public UserRegisterInfo getInfo() {

returninfo;

}

publicvoid setInfo(UserRegisterInfo info) {

this.info = info;

}

public String load() {

this.myUser =
this.userManager.loadById(info.getId());

return"load";

}

}

界面调用layout.jsp代码:

<%@ page
language="java"
import="java.util.*"
pageEncoding="UTF-8"%>

<%

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>

<base
href="<%=basePath%>">

<title>My JSP'layout.jsp' starting page</title>

<meta
http-equiv="pragma"
content="no-cache">

<meta
http-equiv="cache-control"
content="no-cache">

<meta
http-equiv="expires"
content="0">

<meta
http-equiv="keywords"
content="keyword1,keyword2,keyword3">

<meta
http-equiv="description"
content="This is my page">

<!--

<link rel="stylesheet" type="text/css"href="styles.css">

-->

<script
type="text/javascript"
src="js/jquery-1.7.2.min.js"
charset="UTF-8"></script>

<script
type="text/javascript"
src="js/jquery.easyui.min.js"
charset="UTF-8"></script>

<link
rel="stylesheet"
href="js/themes/default/easyui.css"

type="text/css"></link>

<link
rel="stylesheet"
href="js/themes/icon.css"
type="text/css"></link>

<script
type="text/javascript"
src="js/locale/easyui-lang-zh_CN.js"
charset="UTF-8"></script>

<script
charset="UTF-8">

var
cc;

$(function(){

cc = $('#cc').layout();

cc.layout('collapse','west');

});

function
getCenterPanel(){

var
centerPanel=$('#cc').layout('panel','center');

console.info(centerPanel.panel('options').title);

}

</script>

</head>

<body 
id="cc">

<div
region="north"
title="NorthTitle"

style="height:100px;">

<input
type="button"value="展开西部面板"
onclick="cc.layout('expand','west');"/>

</div>

<div
region="south"
title="southTitle"
split="true"

style="height:100px;">

<input
type="button"value="获得center面板"
onclick="getCenterPanel();"/>

</div>

<div
region="west"
title="westTitle"
split="true"
collapse="true"

style="width:200px;"></div>

<div
region="center"
iconCls="icon-save"href="center.html"title="centerTitle"
style="overflow:hidden;">

</div>

</body>

</html>

被引入代码center.html例如以下:

<script
type="text/javascript"
charset="utf-8">

var
datagrid;

$(function(){

$('#datagrid').datagrid({

//url:sy.bp()+'/userAction!datagrid',

url:'u!datagird.action',

title:'ddddd',

iconCls:'icon-save',

pagination:true,

pageSize:10,

pageList:[10,20,30,40],

fit:true,

fitColumns:false,

nowarp:false,

border:false,

idField:'id',

columns:[[{

title:'编号',

field:'id',

width:100

},{

title:'姓名',

field:'name',

width:100

},{

title:'password',

field:'password',

width:100

}]]

});

});

</script>

<div
class="easyui-tabs"
fit="true"
border="false">

<div
title="user management管理"
border="false">

<table
id="datagrid"></table>

</div>

</div>

基于struts环境下的jquery easyui环境搭建的更多相关文章

  1. Centos7环境下etcd集群的搭建

    Centos7环境下etcd集群的搭建 一.简介 "A highly-available key value store for shared configuration and servi ...

  2. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...

  3. Linux环境下SolrCloud集群环境搭建关键步骤

    Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...

  4. Linux环境下HDFS集群环境搭建关键步骤

    Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...

  5. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

  6. virtualenv 环境下 Nginx + Flask + Gunicorn+ Supervisor 搭建 Python Web

    在这篇文章里,我们将搭建一个简单的 Web 应用,在虚拟环境中基于 Flask 框架,用 Gunicorn 做 wsgi 容器,用 Supervisor 管理进程,然后使用 Python 探针来监测应 ...

  7. windows环境下简单Jenkins持续集成搭建

    Jenkins是基于Java开发的持续集成工具,所以在安装Jenkins之前我们要确定电脑上已经安装了Java JDK并且环境变量配置正确,否则在启动使用java -jar Jenkins.war启动 ...

  8. Windows环境下,python webdriver环境搭建

    最近刚开始学习selenium,这是我从虫师的<selenium2自动测试实战--基于Python语言>这本书上学到搭建环境的步骤,里面有加上我的一些总结,希望对大家有所帮助!   准备工 ...

  9. Windows环境下ARM集成开发环境的搭建与使用

    Windows环境下能够使用Eclipse IDE for C/C++ Developers来搭建ARM开发环境 本文地址:http://blog.csdn.net/u011833609/articl ...

随机推荐

  1. POJ 1463 Strategic game(树形DP入门)

    题意: 给定一棵树, 问最少要占据多少个点才能守护所有边 分析: 树形DP枚举每个点放与不放 树形DP: #include<cstdio> #include<iostream> ...

  2. Ubuntu16.04 搭建svn

    1.安装SVN 安装前先更新一下 sudo apt-get update 接下来安装 sudo apt-get install subversion 2.创建SVN版本库 1.创建home下的svn文 ...

  3. pispice中pispice文件夹下模型的描述

    VPULSE: 利用PSpice进行仿真时,用VPULSE产生方波,VPULSE在SOURSE库中,有七个参数: V1:低电平,如-5V: V2:高电平,如+5V: TD:第一个脉冲相对于0时刻的延迟 ...

  4. 详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...

  5. 大数据学习——flume日志分类采集汇总

    1. 案例场景 A.B两台日志服务机器实时生产日志主要类型为access.log.nginx.log.web.log 现在要求: 把A.B 机器中的access.log.nginx.log.web.l ...

  6. 四、SQL基础知识--约束和视图

    --创建约束的方式 --一.在字段创建时将约束添加到字段之后 CREATE TABLE ZYJ_YUESHU( ZYJ_ID VARCHAR(20) NOT NULL PRIMARY KEY, --创 ...

  7. 【数据传输 2】批量导入的前奏:将Excel表中的数据转换为DataTable类型

    导读:我们知道,在数据库中,数据集DataSet是由多张DataTable表组成.所以,如果我们需要将数据从外部导入到数据库中,那么要做的很重要的一步是将这些数据转换为数据库可以接受的结构.今天在用S ...

  8. HTTP API 自动化测试从手工测试到平台的演变

    不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...

  9. Quoit Design(hdu 1007)

    题意:给n个点的坐标,求距离最近的一对点之间距离的一半.第一行是一个数n表示有n个点,接下来n行是n个点的x坐标和y坐标.实数. /* 最小点距离问题 采用分治算法,假设对于1-n的区间,我们已经求出 ...

  10. 【转载】javascript中的函数对象

    原文地址:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html[侵删] 在javascript中函数的申明方式有四种 下面代码中一 ...