spring+struts2+ibatis 框架整合以及解析

时间:2023-03-09 00:51:40
spring+struts2+ibatis 框架整合以及解析

一. spring+struts2+ibatis 框架 搭建教程

参考:http://biancheng.dnbcw.net/linux/394565.html

二.分层

1.dao: 数据访问层(增删改查);一个接口,一个实现类,实现类需要继承 SqlMapClientDaoSupport
2.service:业务逻辑层;一个接口,一个实现类 ,在实现类添加dao的注入
3.action: 表示层 需要继承 ActionSupport ,添加service的注入

4.model :实体类
5.config:实体类对应的xml文件

三:配置文件解析

1.sqlMapConfig。xml 中的 setting 属性设置

参考:http://blog.sina.com.cn/s/blog_4a9eb8290100atff.html
<settings
cacheModelsEnabled="true" 全局性地启用或禁用 SqlMapClient 的所有缓存,true为启用。调试程序时使用。
lazyLoadingEnabled="false" 全局性地启用或禁用SqlMapClient的所有延迟加载
enhancementEnabled="true" 全局性地启用或禁用运行时字节码增强
maxSessions="64" 同一时间内活动的最大 session 数
maxTransactions="8" 同时进入 SqlMapClient.startTransaction()的最大线程数
maxRequests="128" 同时执行 SQL 语句的最大线程数
useStatementNamespaces="false" 如果启用本属性,必须使用全限定名来引用
classInfoCacheEnabled="true" 是否启用缓存类
errorTracingEnabled="true"
defaultStatementTimeout="" 被设置的值以秒为单位等待连接失效
statementCachingEnabled="true" 是否启用准备缓存
/>
根据实体类。xml进行映射 eg:<sqlMap resource="com/test/config/UsersModel.xml"/>

2.struts。xml 文件解析

一般放在src 的根目录下
参考: http://blog.****.net/thinkscape/article/details/7462670

struct-service.xml: dao 注入到service
struts-action.xml : service 注入到action

3.spring 的xml文件解析(applicationContext.xml)

<beana xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

</beans>
---xmlns -> xml namespace。 类似与java中的package
---xmlns:xsi-> xml schema instace。 xml 文件遵守的xml规范
---xsi:schemaLocation -> 本文档里的xml元素所遵守的规范。 schemaLocation:用来引用(schema)模式文档,第一个值表示命名空间,后面的值表示描述该命名空间的文档的位置

该文件主要做:配置数据源,事务管理,建立sqlMapClient 与dao 层的联系

4.web.xml

主要做: 配置起始页; 配置 struts,spring

四:jsp 页面

1. strusts 标签的使用

如: <s:iterator value="ulist">  需要引用<%@ taglib prefix="s" uri="/struts-tags" %>

2.java  数据提交方式

1.1 表单提交 form get/post
       使用:配置form 表单 <form action="userAc!addUser.s" method="post"></form>
    (1) 使用struts 标签 <s:textfield name="umodel.logginid" label="登陆账号" /> <s:submit value="提交" />
            优点:使用简单 ,关键在配置 标签的 name="umodel.logginid" 属性
            缺点:不能做验证
    (2)使用普通标签<input type="text" id="loginid">
           优点:可以做验证。利用标签的id 获取到值做验证。 $("#form").submit(); 使用表单提交
           缺点:稍复杂,需使用js/js+jquery(jquery需要引用js文件)。

1.2. ajax get/post
          优点: 异步刷新
     $.post("url",{'参数名':参数},function(data){
     //处理返回结果

});

action中获取ajax传过去的参数
         参数类型 a = request.getParameter("参数");

3.jquery的初始化方法

$(document).ready(function(){

//页面一加载就调用的事件放入此处。

});

4.两个jsp页面传值

跳转方式为:window.location.href="update.jsp?id="+参数;
           接收方式为:<% String name=request.getParameter("id");%>

5. 关于for循环

for(int i=0;i<2;i++)

System.out.println(i);
        for(int j=2;j<4;j++)
             System.out.println(j);               打印 0 1 2 3

for(int i=0;i<2;i++){
       System.out.println(i);
        for(int j=2;j<4;j++)
           System.out.println(j);
   }                                                     打印 0 2 3 1 2 3

五. 错误排查

1. 运行报404 错误

(1)首先检查代码是否有误,在console 中查看是否有打印错误信息

(2)检查在WEB-INF 下是否生成了classes 文件; 如果没有:点击项目,右键-》属性(properties)->java build path   source 下 更改default output folder

2.  找不到某文件

(1)在项目下查看是否有某文件

(2)查看文件是否发布成功-》D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps