struts2+spring+ibatis框架整合

开发工具 Eclipse 3.3 Tomcat 6.0 运行坏境 Window XP 实现效果 Ajax 
涉及框架 Struts2 ibatis Spring JQuery 准备 Jar 包 
commons-collections.jar commons-dbcp.jar 
commons-fileupload-1.2.jar commouns-logging-1.04.jar freemarker-2.3.8.jar ibatis-2.3.677.jar json.jar 
json-lib-21.1.jar mysql-connector.jar ognl-2.6.1.1.jar spring.jar 
struts2-core-2.1.8.1.jar 
struts2-json-plungin-2.1.8.jar struts2-junit-plugin-2.1.8.1.jar struts-spring-plugin-2.1.8.1.jar xwork-core-2.1.6.jar 
第一步 加入上述jar 包 
下面跟我做一个简单的登陆例子 来明白整个框架的运行过程。 首先数据库以mysql 为例 数据库 : test 表名 :t_user SQL 语句 
create table t_user   ( 
    id int primary key auto_increment not null,     name  varchar(20) not null );  加 
第二步配置 strtus.xml <struts> 
    <!-- 产生对象从spring 配置 文件中读取   -->    <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />     <package name="ajax" extends="json-default"> 
        <action name="ajaxRequest"   class="loginAction">             <result type="json" name="success">                 <param name="includeProperties">                     ajaxRequest\.name 
                </param>            </result>         </action>     </package> </struts>  
第二步 配置 applicationContext.xml 在WEB-INF 目录下  <!-- 配置数据源 --> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>                   <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>                   <property name="username" value="root"/>                   <property name="password" value="123"/>         </bean>  
    <!--ibatis 操作对象-->     <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">         <property name="configLocation">  
            <value>/WEB-INF/SqlMapConfig.xml</value>           </property> 
        <property name="dataSource">             <ref bean="dataSource"/>         </property>     </bean> 
    <!-- 模板页面  -->     <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">         <property name="sqlMapClient">             <ref bean="sqlMapClient"/>         </property>     </bean> 
    <!-- 用户DAO类 --> 
    <bean id="UserDAO" class="com.dao.UserDAO">         <property name="sqlMapClientTemplate">             <ref local="sqlMapClientTemplate"/>         </property>     </bean> 
       <!--  spring 集成 struts2    --> 
        <bean id="loginAction" class="com.web.Login"  scope="singleton">             <property name="userDao">                 <ref bean="UserDAO" />             </property>         </bean>  

第三步 配置 SqlMapConfig.xml 在WEB-INF 目录下 <sqlMapConfig> 
    <sqlMap resource="com/pojo/User.xml"/>       </sqlMapConfig>  
建实体类类 com.pojo.User.java 建配置文件 com.pojo.User.xml   
        <sqlMap namespace="User"> 
            <typeAlias alias="user" type="com.pojo.User" />  
                <select id="getUser" parameterClass="java.lang.String"  resultClass="user">                     <![CDATA[  
                            select *  from t_user  where name = #name#                          ]]> 
                </select>                     </sqlMap>  
建DAO类 com.dao.UserDAO 继承 SqlMapClientDaoSupport ,写个简单测试用户的方法  import java.util.List; 
    import com.pojo.User; 
    public class UserDAO extends SqlMapClientDaoSupport {         public boolean login(User user)          { 
            List list=this.getSqlMapClientTemplate().queryForList("getUser",user.getName());             if(list.size()>0)                 return true;             return false;         }  
    }  
建Action 类 com.web.Login 继承 ActionSupport  package com.web; 
    import org.springframework.context.ApplicationContext; 
    import org.springframework.context.support.ClassPathXmlApplicationContext;     import com.dao.UserDAO; 
    import com.opensymphony.xwork2.ActionSupport;     import com.pojo.User; 
    public class Login  extends ActionSupport{     private String name; 
    private UserDAO userDao;     @Override 
    public String execute() throws Exception {         User user=new User(); 

            user.setName(this.name);             String result=null;             if(userDao.login(user))             { 
                result= "Login SUCCESS!";                 }             else             { 
                result = "The Name is not exists!";                 } 
        HttpServletResponse response = ServletActionContext.getResponse();         PrintWriter  out= response.getWriter();         if(out!=null)         { 
                out.write(result);                 out.flush();                 out.close();         } 
        return SUCCESS;     } 
    public void setName(String name) {         this.name = name;     } 
    public void setUserDao(UserDAO userDao) { 
        System.out.println("------setUserDao()------");         this.userDao = userDao;     }      }  
第四步 配置 web.xml      <!--struts2 配置  -->     <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> 
    <!-- spring 配置  -->          <listener> 
             <listener-class> 

                org.springframework.web.context.ContextLoaderListener              </listener-class>     </listener> 
    <context-param> 
            <param-name>contextConfigLocation</param-name>             <param-value> 
             /WEB-INF/applicationContext.xml              </param-value>     </context-param>  
第五步 建个index.jsp页面 ,内容如下: 
  <script type="text/javascript" src="js/jquery.min.js"></script>  /// 在 WEB-INF 建个文件夹名为js,把jquery.min.js扔进去   <SCRIPT > 
        $(document).ready(function(){ 
            $("#check").click(function(){                                  $.ajax({ 
                   type: "POST", 
                   url: "ajaxRequest.action", 
                   data: "name=" + $("#name").val(),                    dataType: "html",                   success : function(ret){                      alert(ret);                    }                 });  
                 });//click      }); 
        </SCRIPT> 
        <input name="name" id="name" /> 
        <input type="button" value="check" id="check" />  
下面讲下Junit 的使用, 它是个测试框架,原理依旧Java 断言机制原理。 添加 Junit 4.*。jar ,也可以用esclipse自带的 a. 新建一个HelloWorld.java 文件   
        public class HelloWorld {             public int test()             { 

                System.out.println("Hello World!");                 return 1;             } }  

现在要测试HelloWorld 下的test的方法 

b.新建一个test包 新建Junit Test Case 
Name 一般以Test 打头 加上要测试类的名称(例如 TestHelloWorld) 还有个Class under test 就是你要测试的名字 要全称 c. 下一步之后要选择你要测试的方法 
进入 TestHelloWorld ,这个有一个静态导入 import static org.junit.Assert.*; 自动会生成test+你选择的方法名(我的例子生成的是public void testTest() ) 按一下你的代码补全(一般是Alt+ /) 里面有很多测试方法 assertEquals(1,new HelloWorld().test()); 鼠标右击 ,运行Junit Test 绿的就OK了 
页面中有的地方 Unknown macro: 当它不存在好了












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值