struts2+spring+ibatis框架整合

实现效果 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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值