OA中总结:s:select,关于使用modelDriven,项目分层,@Transactional,jspf,各个层上配置注解交给spring管理的方法,简单的OGNL表达式写法
%
<s:select>
?list:需要進行迭代的list集合
?listKey:需要提交的值
?listValue:需要在頁面上顯示的值
============================
優化
1.Action
Action中存在重復的代碼
?從DepartmentAction/RoleAction/UserAction中抽取一個公共的BaseAction.
?1.BaseAction中使用泛型,泛型的具體類型(Class)通過在構造方法中得到.
?如果model為null,就用具體類型newInstance()生成model.為什么model可能不為null?
2.Dao和Service==>3層改成兩層
去掉dao層的具體的實現類xxxDaoImpl.而讓service直接操作數據庫
?service中直接使用session對數據庫進行操作.
?1.service接口可以繼承BaseDao
?2.ServiceImpl可以繼承BaseDaoImpl
?注意:在BaseDaoImpl上添加@Transactional注解
?@Transactional可以被繼承
?如果沒有這個注解,在調用getCurrentSession()獲取session時,會報錯:
??No Hibernate session bounded to ...
3.jsp
?/WEB-INF/jsp/public/common.jspf
?1.抽取公共的js文件生成公共的common.jspf,然后在頁面中用<%@ include file="/WEB-INF/jsp/public/common.jspf"%>調用(靜態包含和動態包含)
??common.jspf中除了包含公共的js外,還包含公共的自定義標簽的導入
?2.addUI.jsp和editUI.jsp==>改成save.jsp
?一般情況下,添加頁面和修改頁面可以使用同一個.
??1.<s:hidden name="id"/>
??2.<s:form action="departmentAction_%{id == null ? 'add' : 'edit'}"/>
??最后修改struts.xml中<result>對應的jsp頁面
==================================================
完成增刪改查功能的步驟
一、做action相關的準備
?1.創建xxxAction extends BaseAction
?2.定義出Action中的方法,要寫出方法名、作用、返回值
?3.創建出所用到的jsp頁面(內容先不寫)
?4.配置:
??1.Spring==>在xxxAction上添加注解@Controller和@Scope
??2.Struts2==>在struts.xml中添加
??<action name="" class="" method="">..</action>
二、做service相關的配置
?1.創建接口XxxService繼承BaseDao
?2.創建實現類XxxServiceImpl繼承BaseDaoImpl
?3.配置:在XxxServiceImpl上添加注解@Service
?4.聲明:在BaseAction上聲明各個service作為成員變量,并在變量上添加注解@Resource
三、填空
?1.Action方法
??.......
?2.新增的的Service方法
?3.jsp頁面的內容
??1.拷貝靜態頁面中的方法到jsp中
??2.<%@ include file="/WEB-INF/jsp/public/common.jspf"%>
??3.?../替換成${pageContext.request.contextPath}/
??4.改頁面內容(使用自定義標簽)
???1.列表頁面
???<s:iterator value="..">
???<s:a action=".." onclik="">
???注意:onclick中的c小寫
???2.表單頁面(saveUI.jsp)
???<s:form action="departmentAction_%{id==null?'add':'edit'}">
????<s:hidden name="">
????<s:textfield>
????<s:textarea>
????<s:select name="" list=".." listKey=".." listValue="..">
????<s:radio name="gender" list="#{'男':'男','女':'女'}" listKey="" listValue="">
?????其中:#{'男':'男','女':'女'}可以簡寫成#{'男','女'}
????<s:checkbox>
????<s:submit>
???</s:form>
???<select multiple="true" size="10">對應的struts標簽
???<s:select name="" mutiple="true" cssClass="" list="#roleList" listKey="id" listValue="name">
未完成的任務
?// TODO
?Tasks
總結
以上是生活随笔為你收集整理的OA中总结:s:select,关于使用modelDriven,项目分层,@Transactional,jspf,各个层上配置注解交给spring管理的方法,简单的OGNL表达式写法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 科创板都有哪些股票
- 下一篇: Oracle中PLSQL中if语句的写法
