4. 完成功能.
1). 獲取所有的員工信息:
——>EmployeeService
——>EmployeeAction
——>applicationContext-beans.xml
——>struts.xml
——>emp-list.jsp
【問(wèn)題】:若在 Dao 中只查詢(xún) Employee 的信息, 而且 Employee 和 Department 還是使用的懶加載. 頁(yè)面上還需要顯示員工信息, 此時(shí)會(huì )出現懶加載異常, 代理對象不能被初始化: 2.org.hibernate.LazyInitializationException: could not initialize proxy - no Session
【解決】:
①. 打開(kāi)懶加載: 不推薦使用
②. 獲取 Employee 時(shí)使用 迫切左外連接同時(shí)初始化其關(guān)聯(lián)的 Department 對象.
FROM Employee e LEFT OUTER JOIN FETCH e.department
③. 使用 OpenSessionInViewFilter: 后面再提.
2). 刪除員工信息:
①. 正常刪除, 返回值需要是 redirect 類(lèi)型, 而且重定向到 emp-list
emp-list.jsp
——>EmployeeAction----delete()
——>EmployeeDao----delete()
——>EmployeeService-----delete()
——>struts.xml----
②. 確定要刪除嗎? 的提示使用 jQuery 完成
emp-list.jsp---scripts
——>EmployeeAction----delete()
——>struts.xml----
③. Ajax 的使用參見(jiàn) struts-2.3.15.3-all/struts-2.3.15.3/docs/WW/docs/ajax.html
3). 添加員工:
①. 顯示表單頁(yè)面: 需要先查詢(xún)所有的部門(mén)信息
Department
Dao ——>Department Service
——>EmployeeAction-------input
——>applicationContext-beans.xml
——>struts.xml ——>emp-input.jsp
②. 使用 Struts2 的 ModelDriven 和 Preparable 攔截器
——>EmployeeAction----- implements RequestAware,ModelDriven<Employee>,Preparable--------save()
——>Employee-------toString
——>struts.xml-------<interceptors>
——>SSHDateConverter
——>xwork-conversion.properties ——>EmployeeAction-----prepareSave()
③. 時(shí)間是一個(gè)字符串, 需要轉為一個(gè) Date 類(lèi)型的對象
EmployeeDao----saveOrUpdate(Employee employee)
——>EmployeeService-----saveOrUpdate(Employee employee)