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了
struts2+spring+ibatis框架整合相关推荐
- struts2+spring+hibernate框架整合与项目
嗯,其实一两周前都写好了,可一直懒得发,今天终于不懒一会,发一下.内容很清楚,主要是搭建框架的过程还有我写项目中遇到的许多问题.鉴于太多了,所以懒惰的我直接发的我参考的那些作者的链接,大家可以看一看. ...
- zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)
1.从zTree官网上下载zTree的包,zTree的官方网址是:http://www.ztree.me/v3/main.php#_zTreeInfo 2.引入zTree所需的依赖,例如(jQuery ...
- Struts2和hibernate框架整合实现简单的注册登陆功能
Struts2和hibernate框架整合实现简单的注册登陆功能 项目结构: LoginAction.java package action; import vo.User; import vo.Us ...
- Struts2+Spring+Hibernate的整合
整体程序结构 1.maven依赖 <!--实现Struts2+Spring+Hibernate的整合 --><dependencies><!--Spring --> ...
- spring boot 学习(二)spring boot 框架整合 thymeleaf
spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神 ...
- liferay + struts2 + spring + ibatis整合开发案例
1 首先 开发的工程和案例是根据另外一个人博客进行开发的 开发地址如下: http://sweat89.iteye.com/blog/1686206 2 按照这位前辈的开发,搭建好后发现有很多问题, ...
- Struts2,Spring,Hibernate框架的优缺点
开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2) 丰富的标签库,大大提高了开发的效率: 3) S ...
- struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
js代码: [javascript]view plaincopy <!-- ajax 验证 --> <script type="text/javascript"& ...
- (附源码)Spring Boot 框架整合 OAuth2 实现单点登录 SSO 详细完整源码教程!
1. 前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,"一看就会,一做就错".网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那 ...
最新文章
- python写一个表白程序-用Python写一个表白神器让你脱单
- python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
- 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系
- ubuntu下进程kidle_inject致使编译软件很慢
- 数据类型转换(针对数字类型)
- 【深度学习】——pytorch搭建模型及相关模型
- left join 重复数据_Python数据分析整理小节
- 金融数据分析与挖掘实战练习2.10
- 2021-08-14
- 想自学单片机,各位有什么书和板子值得推荐的吗?
- 网络安全笔记-业务安全
- vlookup多条件的使用
- Numpy常用快捷指令
- 易基因|全基因组cfDNA甲基化分析提高了早期乳腺癌无创诊断成像的准确性
- 目标管理:SMART原则
- 动手实现一个docker引擎-1-从内核到docker的三驾马车
- golang生成UUID通用唯一识别码
- 喷上它就能凭空打字!鲍哲南团队开发新型智能皮肤,可准确识别手部动作,打字手语不在话下...
- 信息度量(一):自信息、互信息与信息散度
- 机房搬迁的一般步骤以及注意事项