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

struts2+spring+ibatis框架整合相关推荐

  1. struts2+spring+hibernate框架整合与项目

    嗯,其实一两周前都写好了,可一直懒得发,今天终于不懒一会,发一下.内容很清楚,主要是搭建框架的过程还有我写项目中遇到的许多问题.鉴于太多了,所以懒惰的我直接发的我参考的那些作者的链接,大家可以看一看. ...

  2. zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)

    1.从zTree官网上下载zTree的包,zTree的官方网址是:http://www.ztree.me/v3/main.php#_zTreeInfo 2.引入zTree所需的依赖,例如(jQuery ...

  3. Struts2和hibernate框架整合实现简单的注册登陆功能

    Struts2和hibernate框架整合实现简单的注册登陆功能 项目结构: LoginAction.java package action; import vo.User; import vo.Us ...

  4. Struts2+Spring+Hibernate的整合

    整体程序结构 1.maven依赖 <!--实现Struts2+Spring+Hibernate的整合 --><dependencies><!--Spring --> ...

  5. spring boot 学习(二)spring boot 框架整合 thymeleaf

    spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神 ...

  6. liferay + struts2 + spring + ibatis整合开发案例

    1 首先 开发的工程和案例是根据另外一个人博客进行开发的 开发地址如下:  http://sweat89.iteye.com/blog/1686206 2 按照这位前辈的开发,搭建好后发现有很多问题, ...

  7. Struts2,Spring,Hibernate框架的优缺点

    开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2)  丰富的标签库,大大提高了开发的效率: 3) S ...

  8. struts2 + ajax 用户名登录验证(struts2+spring+ibatis)

    js代码: [javascript]view plaincopy <!-- ajax 验证 --> <script type="text/javascript"& ...

  9. (附源码)Spring Boot 框架整合 OAuth2 实现单点登录 SSO 详细完整源码教程!

    1.  前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,"一看就会,一做就错".网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那 ...

最新文章

  1. python写一个表白程序-用Python写一个表白神器让你脱单
  2. python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
  3. 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系
  4. ubuntu下进程kidle_inject致使编译软件很慢
  5. 数据类型转换(针对数字类型)
  6. 【深度学习】——pytorch搭建模型及相关模型
  7. left join 重复数据_Python数据分析整理小节
  8. 金融数据分析与挖掘实战练习2.10
  9. 2021-08-14
  10. 想自学单片机,各位有什么书和板子值得推荐的吗?
  11. 网络安全笔记-业务安全
  12. vlookup多条件的使用
  13. Numpy常用快捷指令
  14. 易基因|全基因组cfDNA甲基化分析提高了早期乳腺癌无创诊断成像的准确性
  15. 目标管理:SMART原则
  16. 动手实现一个docker引擎-1-从内核到docker的三驾马车
  17. golang生成UUID通用唯一识别码
  18. 喷上它就能凭空打字!鲍哲南团队开发新型智能皮肤,可准确识别手部动作,打字手语不在话下...
  19. 信息度量(一):自信息、互信息与信息散度
  20. 机房搬迁的一般步骤以及注意事项

热门文章

  1. Android与EPS8266模块通信(一)编写Android客户端
  2. Fiddler的Inspectors(数据分析)
  3. 微信小程序tabbar的定义位置
  4. 直播 CDN 分发网络(基本业务)
  5. 通过批处理 批量拷贝文件夹及子文件下的某扩展名文件。
  6. 切换本地github或者码云的账号
  7. 5 亿播放的汽车狂欢节,这家数据库站 C 位
  8. 已知一个向量,计算向量上的某个点的坐标
  9. matlab常用函数表格,(完整版)MATLAB常用函数总结,推荐文档
  10. delaunay三角剖分算法——分治算法概述与实现1