小菜毛毛技术分享

与大家共同成长

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
经过两天工作闲余时间的奋战,终于flex3+struts 1.3+spring +ibatis 2.x 整合成功,下面介绍下详细的步骤和核心代码:
IDE:myeclipse
(当然:前提是FLEX+java整合成功的情况下,关于flex+java整合的文章就比较多,google下就OK):
1.成功整合FLEX+JAVA后,右键单击项目选择 MyEclipse---》add struts(添加STRUTS比较简单这里就不多说了),下面贴代码:
(1)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
  
<form-beans />
  
<global-exceptions />
  
<action-mappings >
    
<action 
    path
="/user" 
    type
="com.yinhai.struts.action.UserAction" 
     scope
="request"
   
>
    
<forward name="sucess" path="/index.jsp" />
    
</action>
  
</action-mappings>
</struts-config>
在web-info下的struts-config.xml中添加如上代码
(2)UserAction
 1package com.yinhai.struts.action;
 2
 3import java.io.IOException;
 4import java.io.PrintWriter;
 5import java.sql.Connection;
 6import java.sql.DriverManager;
 7import java.sql.SQLException;
 8import java.util.List;
 9
10import javax.servlet.http.HttpServletRequest;
11import javax.servlet.http.HttpServletResponse;
12
13import model.User;
14
15import org.apache.struts.action.Action;
16import org.apache.struts.action.ActionForm;
17import org.apache.struts.action.ActionForward;
18import org.apache.struts.action.ActionMapping;
19import org.springframework.beans.factory.BeanFactory;
20import org.springframework.context.support.ClassPathXmlApplicationContext;
21
22import dao.ContextHelper;
23import dao.UserDaoImpl;
24
25/** 
26 * MyEclipse Struts
27 * Creation date: 08-05-2009
28 * 
29 * XDoclet definition:
30 * @struts.action parameter="method" validate="true"
31 * @struts.action-forward name="fail" path="/fail.jsp"
32 * @struts.action-forward name="sucess" path="/sucess.jsp"
33 */

34public class UserAction extends Action  {
35    /*
36     * Generated Methods
37     */

38
39    /** 
40     * Method execute
41     * @param mapping
42     * @param form
43     * @param request
44     * @param response
45     * @return ActionForward
46     * @throws IOException 
47     */

48    public ActionForward execute(ActionMapping mapping, ActionForm form,
49            HttpServletRequest request, HttpServletResponse response)  {
50//        ClassPathXmlApplicationContext ctxss = new ClassPathXmlApplicationContext("applicationContext.xml");
51//        BeanFactory ctx=(BeanFactory)ctxss; 
52//       UserDaoImpl um = (UserDaoImpl) ctx.getBean("userDao"); 
53        UserDaoImpl um =(UserDaoImpl)ContextHelper.getContext().getBean("userDao");
54        List users = um.getUsers(); 
55        User user=null;
56        String xml="<?xml version=\"1.0\" encoding=\"utf-8\"?><users>";
57        for(int i=0;i<users.size();i++){
58            user=(User)users.get(i);
59            xml=xml+"<user>"+
60            "<usernumber>"+user.getUsernumber()+"</usernumber>" +
61            "<name>"+user.getName()+"</name>"+
62            "<password>"+user.getPassword()+"</password>"+
63        "</user>";
64        }

65        xml=xml+"</users>";
66        System.out.println(xml);
67        PrintWriter p = null;
68        try {
69//            p=response.getWriter();
70            response.getWriter().write(xml);
71            
72        }
 catch (Exception e) {
73            // TODO Auto-generated catch block
74            e.printStackTrace();
75        }

76        //p.write(xml);
77//        p.print("<?xml version=\"1.0\" encoding=\"utf-8\"?><users><user><usernumber>1</usernumber><name>caicai</name><password>dddddd</password></user><user><usernumber>2</usernumber><name>yingying</name><password>dddddd</password></user><user><usernumber>3</usernumber><name>ceshi</name><password>dddddd</password></user><user><usernumber>4</usernumber><name>ceshi</name><password>dddddd</password></user>");
78//        p.close();
79        
80        return null;

(3)获取bean的工具类
package dao;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Date: 2008-3-20 Time: 17:28:48 To change this template use File | Settings |
 * File Templates.
 
*/

public class ContextHelper {
    
private static ClassPathXmlApplicationContext _ctx;

    
static {
        _ctx 
= new ClassPathXmlApplicationContext("/applicationContext.xml");
    }


    
public static ClassPathXmlApplicationContext getContext() {
        
return _ctx;
    }

    
}

2.添加SRPING
右键单击项目选择 MyEclipse---》add spring
spring的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns
="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
    
<property name="username" value="root"/>
    
<property name="password" value="root"/>
  
</bean>

  
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    
<property name="configLocation" value="sqlmap-config.xml"/>
    
<property name="dataSource" ref="dataSource"/>
  
</bean>
  
<bean id="userDao" class="dao.UserDaoImpl">
    
<property name="sqlMapClient" ref="sqlMapClient"/>
  
</bean>

</beans>

(3)添加IBATIS
首先将ibatis的JAR包导入,放在LIB下即可
IBTIS配置文件
sqlmapconfig.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig      
    PUBLIC 
"-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

  
<!-- Configure a built-in transaction manager.  If you're using an 
       app server, you probably want to use its transaction manager 
       and a managed datasource 
-->


  
<!-- List the SQL Map XML files. They can be loaded from the 
       classpath, as they are here (com.domain.data
-->
  
<sqlMap resource="dao/User.xml"/>
  
<!-- List more here
  
<sqlMap resource="com/mydomain/data/Order.xml"/>
  
<sqlMap resource="com/mydomain/data/Documents.xml"/>
  
-->

</sqlMapConfig>
User.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap      
    PUBLIC 
"-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
    
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="User">

  
<!-- Use type aliases to avoid typing the full classname every time. -->
  
<typeAlias alias="user" type="model.User"/>

  
<!-- Select with no parameters using the result map for Account class-->
  
<select id="getUsers" resultClass="user" >
    select 
* from user;
  
</select>


</sqlMap>

注意:User.xml一定要和相应的DAO的实现类放一个包下
4.FLEX文件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
    
<![CDATA[
        
import mx.rpc.events.FaultEvent;
        
import mx.controls.Alert;
        
import mx.rpc.events.ResultEvent;
        
import mx.controls.DataGrid;
    [Bindable]
    
public var gridXml:XML;
    
public function httpHandler(event:ResultEvent):void{
        Alert.show(
"hello2");
        gridXml
=XML(event.result);
        
        griddata.dataProvider
=gridXml.children();//XMLList
    }

    
public function initHandler():void{
        testHttp.url
="http://localhost:8080/LCSYS/user.do";
        Alert.show(
"hello1");
        testHttp.send();
        
    }

    
public function httpFail(event:FaultEvent):void{
        Alert.show(
"调用失败");
        Alert.show(event.message.toString());
    }

    ]]
>
</mx:Script>
<mx:HTTPService id="testHttp" result="httpHandler(event)" fault="httpFail(event)" resultFormat="e4x" />
    
<mx:Panel x="171" y="64" width="670" height="342" layout="absolute" id="userPannel" title="userPannel1">
        
<mx:DataGrid x="0" y="0" width="100%" height="100%"   id="griddata">
            
<mx:columns>

                 
<mx:DataGridColumn dataField="usernumber" headerText="usernumber"/>
                
<mx:DataGridColumn dataField="name" headerText="name"/>
                
<mx:DataGridColumn dataField="password" headerText="password"/>
           
            
</mx:columns>
        
</mx:DataGrid>
        
<mx:ControlBar height="34" y="262">
            
<mx:Button label="查询人员列表" click="initHandler()"/>
        
</mx:ControlBar>
    
</mx:Panel>
</mx:Application>

5.其他文件:
工具类,解决乱码
package dao;

import java.io.UnsupportedEncodingException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Tool {
     
public static String change(String str){
         String str2;
        
try {
             str2 
= new String(str.getBytes("iso-8859-1"),"UTF-8"); 
            
return str2;
        }
 catch (UnsupportedEncodingException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

         
return null;
        
     }

    
}

userDaoImpl
package dao;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class UserDaoImpl extends SqlMapClientDaoSupport implements UserDao  {

    
public List getUsers() {
        
// TODO Auto-generated method stub
        return this.getSqlMapClientTemplate().queryForList("getUsers");
    }


}

时间关系,介绍得比较粗糙也没撒说明,不过只要对框架较熟悉的应该很快能搭建起环境
本文章主要是集成框架介绍

注意:需要IBATIS的JAR吧,dbcp连接池的包,还有相应的驱动包
posted on 2009-08-13 14:38 小菜毛毛 阅读(2704) 评论(4)  编辑  收藏 所属分类: J2EE相关技术与框架

Feedback

# re: flex3+struts 1.3+spring +ibatis 2.x 整合实例---让新人少走弯路(myeclipse)[未登录] 2011-07-07 11:26 aaa
都不说明一下,直接发一堆代码,写了跟没写有什么区别,新人能看懂吗  回复  更多评论
  

# re: flex3+struts 1.3+spring +ibatis 2.x 整合实例---让新人少走弯路(myeclipse) 2012-11-16 15:27 王志国
挺好的  回复  更多评论
  

# re: flex3+struts 1.3+spring +ibatis 2.x 整合实例---让新人少走弯路(myeclipse) 2012-11-16 15:28 王志国
原来都是错误,这次到反映点东西回来。
将struts中Action后的jsp网页给传回来了。神奇!  回复  更多评论
  

# re: flex3+struts 1.3+spring +ibatis 2.x 整合实例---让新人少走弯路(myeclipse) 2014-04-13 21:33 最代码
最代码上转载了你的文章,有问题请回复,地址:http://www.zuidaima.com/share/1778657261997056.htm  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: