<sqlMapConfig>
<!-- 這個(gè)就是數(shù)據(jù)庫的聯(lián)接啦,如果加入了SPRING的話,就全部交由SPRING來管理啦-->?
<properties resource="com/netmarch/sjjh2/maps/database.properties"/>
? <settings
?cacheModelsEnabled="true"
?enhancementEnabled="true"
?lazyLoadingEnabled="true"
?maxRequests="32"
?maxSessions="10"
?maxTransactions="5"
?useStatementNamespaces="false"
? />
<!-- 下面這些不說大家也能看懂啦-->
? <typeAlias alias="order" type="testdomain.Order"/>
? <transactionManager type="JDBC">
??? <dataSource type="SIMPLE">
????? <property name="JDBC.Driver" value="${driver}"/>
?? <property name="JDBC.ConnectionURL" value="${url}"/>
?? <property name="JDBC.Username" value="${username}"/>
?? <property name="JDBC.Password" value="${password}"/>
????? <property name="JDBC.DefaultAutoCommit" value="true" />
?? <property name="Pool.MaximumActiveConnections" value="10"/>
????? <property name="Pool.MaximumIdleConnections" value="5"/>
?? <property name="Pool.MaximumCheckoutTime" value="120000"/>
?? <property name="Pool.TimeToWait" value="500"/>
?? <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
?? <property name="Pool.PingEnabled" value="false"/>
?? <property name="Pool.PingConnectionsOlderThan" value="1"/>
?? <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
??? </dataSource>
? </transactionManager>
<!-- 這里要對(duì)應(yīng)好哦,呵呵, 這里可是執(zhí)行數(shù)據(jù)庫操作的配置文件哦,-->?
<sqlMap resource="com/netmarch/sjjh2/maps/Rs.xml" />
? <sqlMap resource="com/netmarch/sjjh2/maps/Mz.xml" />
?? <sqlMap resource="com/netmarch/sjjh2/maps/HuiZong.xml" />
?
</sqlMapConfig>
下面的database.properties就是上面所對(duì)應(yīng)的
<properties resource="com/netmarch/sjjh2/maps/database.properties"/>
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.1.110:1521:center
username=XXX
password=XXX
???先寫到這,事情又來啦!有空再接著寫!
好,下面我們接著再來寫!
剛才我上來一看就有一位朋友說有源碼和UML圖就好啦,好吧,我就先把UML類圖給弄上來!各位稍等,上傳中。。。。。
相關(guān)的部分類圖在我的相冊(cè)里面!我時(shí)間不多(我不知道這里是咱轉(zhuǎn)圖片到這里面的),大家將就著看吧!
logic:Iterator
標(biāo)簽(以下簡(jiǎn)稱
“
該標(biāo)簽
”
)是
Struts
里非常常用的一個(gè)標(biāo)簽,其作用在于循環(huán)顯示給定容器對(duì)象中的值。
如此常用的標(biāo)簽,其源代碼當(dāng)然需要拿出來研究一下,以下列舉幾條研究成果:
1
、該標(biāo)簽內(nèi)部使用
Collection
來表示給定的容器,所有的給定容器對(duì)象(如
ArrayList
,
Map
等)都會(huì)被其轉(zhuǎn)化成為
Collection,Collection
實(shí)際就是
Map
和
List
的父類
。
2
、該標(biāo)簽自己維護(hù)循環(huán)索引,不用程序員管理索引
3
、該標(biāo)簽常見的幾個(gè)屬性如下:
name
、
property
、
scope
、
id
對(duì)應(yīng)
Struts
給出的
Api
說明如下:
name:
包括要遍歷
Collection
的
Jsp
頁面的
bean
的名字(如果
property
沒有被定義),或者是那些通過
getter
方法獲得屬性的
Jsp
中的
Bean
的名字,這些
getter
方法返回的是
Collection
(如果
property
定義了)。
property:
在
name
命名的
Jsp bean
中定義的屬性的名字,通過
getter
方法返回一個(gè)
Collection
scope:
指示到哪里去尋找
name
為名字的
bean
,如果沒有定義缺省為
"any scope"
id:
如果
Collection
非空的話,在每次遍歷時(shí)候
Collection
中每個(gè)元素的名字。
其中除了
id
每個(gè)元素均為
Rt expr
,這兒的
rt expr
的意思就是
Run Time Expression
。明確的說就是,如果你對(duì)一個(gè)
Attribute
的
<rtexprvalue>
指定為
true
,你就可以在這樣的屬性中使用
<%=%>
之類的東東。這個(gè)配置文件在
tld
中。
只有
id
是必須要說明的。
關(guān)于
Api
說明的說明:
id
只是一個(gè)臨時(shí)標(biāo)識(shí),在下面的
<bean:write
里面出現(xiàn)的
name
屬性要和
id
一致才能打印出
<bean:write
的
property
,而此
property
就是在
iterator
中的屬性。
舉例說明
以下代碼生成一個(gè)階梯狀表格
系統(tǒng)
資源
操作
soft3
res3
opt3
soft12
res12
opt1211
soft11
res11
opt1111
在此之前傳來一個(gè)
request.getAttribute("userPurview")
,所以有在第一個(gè)
logic
中的
userPurview,
就是在這個(gè)
request
里面尋找
userPurview
返回的是一個(gè)
list
<table width="300" border="0">
<tr><td>
系統(tǒng)
</td>
<td>
資源
</td>
<td>
操作
</td>
</tr>
<!---
第一級(jí)迭代
-->
//request
中的數(shù)值為”
userPurview
”作用范圍在
request
中
,
取的
ID
名為
targetSys
<logic:iterate id="targetSys" name="userPurview" scope="request">
//
這個(gè)
id
可以隨便起名,但是要注意下文使用的一致性
<tr bgcolor="#cccccc"><td height="21" class="unnamed2">
<bean:write name="targetSys" property="cn"/>
//
此處
name
和上面
id
保持一致,
property
就是第一個(gè)
list
里面的元素
</td>
<td height="21" class="unnamed2">?</td>
<td height="21" class="unnamed3">?</td>
</tr>
<!---
第二級(jí)迭代
-->
<logic:iterate id="targetRes" name="targetSys" property="purviewResList">
<tr><td height="21" class="unnamed2">?</td><td
height="21" class="unnamed5">
<bean:write name="targetRes" property="cn"/>
</td>
<td
height="21" class="unnamed6">?</td>
</tr>
<!---
第三級(jí)迭代
-->
<logic:iterate id="targetOpr" name="targetRes" property="purviewOprList">
<tr><td height="21" class="unnamed4">?</td><td
height="21" class="unnamed4">?</td>
<td
height="21" class="redzi">
<bean:write name="targetOpr"? property="cn"/></td>
</tr>
</logic:iterate>
</logic:iterate>
</logic:iterate>
</table>
結(jié)論:
多級(jí)迭代和單層差不多,唯一注意的就是
id
和
<bean:write
中的
name
的對(duì)應(yīng),上級(jí)
logic
的
id
與下級(jí)
logic
的
name
對(duì)應(yīng),并且取出來的要是個(gè)
Collection,name
和
id
不一定實(shí)際需要這個(gè)
bean
,都是虛擬的。