基于struts环境下的jquery easyui环境搭建

Posted jzssuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于struts环境下的jquery easyui环境搭建相关的知识,希望对你有一定的参考价值。

下载地址:

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环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

项目教程:Struts2.x+Spring3.x+Hibernate4.x+jquery2.x+EasyUI1.3.x项目开发

使用Struts2和jQuery EasyUI实现简单CRUD系统(转载汇总)

Struts+JQuery EasyUI实现查询

easyUI 学习

使用Struts2和jQuery EasyUI实现简单CRUD系统——jsp,json,EasyUI的结合

struts2+Hibernate4+spring3+EasyUI环境搭建之一