OA項目之在SSH如下如何?Select跟Radio,oassh
1.今天學習了在SSH下如何?頁面前端的Select和Radio,個人感覺很重要在此做筆記,很多地方可以用到。
2.首先效果如下利用struts2的標籤來做,首先來看Select:
<select name="departmentId" class="SelectStyle"> <option value="0" selected="selected">請選擇部門</option> <option value="7">┠總經理室</option> <option value="1">┠市場部</option> <option value="2"> ┠諮詢部</option> <option value="3"> ┠招生部</option> <option value="4">┠教學部</option> <option value="5">┠後勤部</option> </select>
以上代碼都是靜態,寫死的不經過資料庫,直接呈現在頁面中,下面我們利用struts2標籤來動態顯示部門資訊。其實就是將部門資訊顯示到下拉式清單裡面,代碼如下:
<s:select name="departmentId" cssClass="SelectStyle" list="#departmentList" listKey="id" listValue="name" headerKey="" headerValue="請選擇部門"> </s:select>
解釋:
list: 每一個Select標籤都有一個list 屬性,代表的是後台我們已經準備的DepartmentList(部門的集合,具體詳見前一篇的DepartmentAction中的list方法),加上#號的原因,是因為我們在Action中是將部門集合放在值棧的Map中儲存的.
listKey: 當我們在下拉式清單選擇了一個部門然後需要提交儲存的時候,我們前台傳遞的其實是id號,所以listKey就是代表的部門id.(簡稱是用來提交的)
listValue: 我們頁面看到的其實是部門的name屬性,所以listValue就是代表頁面是通過什麼來顯示的很明顯是通過name來顯示
(簡稱用來顯示的)
name: 這個屬性大家都清楚,是標誌這個標籤的,伺服器端需要在後台得到他的值,所以在DepartmentAction中必須有 departmentId這個屬性且需要提供 getter和setter 方法
cssClass:為了儲存原來的樣式
headerKey:如預設是"請選擇部門",key就是這個預設值得id這裡沒有所以為空白
headerValue:Select的預設值
3.下面是radio,原代碼如下:
<input type="RADIO" name="sex" value="男" id="male"/><label for="male">男</label> <input type="RADIO" name="sex" value="女" id="female"/><label for="female">女</label>
現修改為:
<s:radio name="gender" list=" {'男', '女'} "></s:radio>
解釋:
name:跟上面一樣對應著Action中的屬性
list: 構建一個map#{‘男’:’男‘,‘女’:’女‘},其中第一個男為key第二個男士value也就是說提交的為男,在頁面顯示的也是男,跟上 面的Select一樣,當key和value一樣的時候 我們就可以直接簡寫為上面的那個代碼,更簡潔。女同上
附註:
EL跟OGNL的寫法區別(因為在JSP中經常出現${},%{},#{},必須對ValueStack熟悉):
EL運算式 JSP中 ${運算式}
OGNL運算式Strtus2中(Struts2的自訂標籤中、struts.xml...)
Struts2的自訂標籤的屬性值中使用OGNL用該用%{運算式}
在struts.xml中如果如果需要使用OGNL應該用${運算式}
文法:
%{name} 代表會優先從值棧中的對象棧中取得name屬性
%{#name} 代表會從值棧中的Map中取得name屬性
%{#user.name} 代表從map中user屬性的取得那麼屬性
#{'k':'v', 'k2':'v2'} 這是代表構建一個Map
{'e1', 'e2'} 這代表構建一個list
select,radio,通用的回顯方案程式架構ssh2,頁面得到的是一個對象,select,radio非struts2標籤
html裡面就有下拉式清單和選項按鈕。。。
OA 內部簡訊怎實現?
為什麼要新開一個線程呢?J2EE本來就是多線程的。
解決辦法如下:
一、使用者登陸時去資料庫查詢一下是否有未閱讀的資訊,如果用的話彈出表單提示,這個很好做吧??那接下來就是線上的時候接收資訊了,因為是B/S結構的,所以接收資訊比較麻煩一點,只能用JAVASCRIPT寫一個計時器,每過一段時間去伺服器取一次資料,取資料你可以用AJAX實現,也可以用頁面提交實現。如果發現有未閱讀的則彈出表單提示。
二、我知道有一種技術叫JMS,也是用來實現通訊的,但是怎麼用我不知道。
三、另外一種解決辦法就是自已做一個C/S結構的通訊與你們的OA結合起來,一個通訊做起來也沒有多困難的,我個人認為最好的是第三個方案。