參考:http://biancheng.dnbcw.net/linux/394565.htmlhtml
1.dao: 數據訪問層(增刪改查);一個接口,一個實現類,實現類須要繼承 SqlMapClientDaoSupport
2.service:業務邏輯層;一個接口,一個實現類 ,在實現類添加dao的注入
3.action: 表示層 須要繼承 ActionSupport ,添加service的注入java
4.model :實體類
5.config:實體類對應的xml文件jquery
參考: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"/>linux
通常放在src 的根目錄下
參考: http://blog.csdn.net/thinkscape/article/details/7462670web
struct-service.xml: dao 注入到service
struts-action.xml : service 注入到actionajax
<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 層的聯繫spring
主要作: 配置起始頁; 配置 struts,springsql
主要作:增/刪/改/查數據庫
根節點:<sqlMap namespace="space"></sqlMap> 緩存
子節點: (1)查詢: <resultMap id="Result" class="select">
<result property="實體類中屬性名" column="數據庫中的列名"/>
</resultMap>
<select id="selectAllroleRule" resultMap="Result" parameterClass="參數類型">
select * from 表名 where id=$實體類中對應的屬性名$
</select>
條件查詢:
<sql id="sql1">
<dynamic prepend="where">
<isNotEmpty perpend="and" property="name">
nameLike '%$name$%'
</isNotEmpty>
</dynamic>
</sql>
<select>
select * from name
<include refid="sql1">
</select>
(2)添加: <insert id="insert" parameterClass="roleRule">
<![CDATA[
insert into role_rule(roleid, ruleid) values(#roleid#,#ruleid#)
]]>
</insert>
(3)刪除: <delete id="delete" parameterClass="參數類型">
delete from role_rule where roleid = $roleid$
</delete>
(4)修改:<update id="update" parameterClass="roleRule">
<![CDATA[
update role_rule set ruleid=#ruleid# where roleid = #roleid#
]]>
</update>
注意:a.一般狀況下ibatis的參數在sqlmap中使用#param#的形式,參數名以’#‘包着,但當使用模糊查詢時,須將#改成$.如上.
b.<![CDATA[ ]]>:用來分隔sql語句,以防止與xml中一些語法衝突
如: <s:iterator value="ulist"> 須要引用<%@ taglib prefix="s" uri="/struts-tags" %>
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("參數");
$(document).ready(function(){
//頁面一加載就調用的事件放入此處。
});
跳轉方式爲:window.location.href="update.jsp?id="+參數;
接收方式爲:<% String name=request.getParameter("id");%>
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