一直在準備作一套系統, 具體用來幹什麼都沒肯定. 只是從純技術人員的想法, 先搭建一套開發的框架. 作的時候才發現, 系統用途不一樣, 框架也是不一樣的. 暫時就先看成企業內部管理的系統來作吧.css
後臺基礎框架是struts2+spring3+mybatis3.2. java
前臺用jQueryweb
數據庫:mySql正則表達式
以前搭建ssm的框架就廢了很多時間, 剛開始幼稚的計劃都用最新版本, 還增長了如struts2的json插件,spring-mybatis插件, mybatis-generator等插件, 結果都弄到一塊兒才發現各類版本不兼容. 後來使用maven來搭建, 方便了不少, 能夠方便的更換框架版原本調整. 但在搭建完成之後才以爲開發的時候很彆扭, 也多是我仍是不熟悉maven, 每次修改一個jsp都得從新發布. 想到基本框架搭建差很少了, 就把maven工程轉換成了普通的web工程.spring
由於對美工不熟, js, css雖然會用, 但實在算不得熟練. 在網上了解了不少, 決定使用jQuery UI. sql
從一個基本的數據對象增刪該查開始作起, 對框架的應用從開始的xml配置開始, 先完成基本的功能, 而後再優化代碼,配置文件. 將以爲多餘的, 不方便的東西一一去掉. 如今開始用註解替換xml文件. 數據庫
前臺的頁面, 從表格開始. 選擇了使用json來做爲重要的先後臺傳輸數據, 發現手動去轉換對象和json對象太過繁瑣, 開始使用jQGrid. 期間發現了兩個糾結了很多時間的問題.json
1. DAO層使用註解注入SqlSessionTemplate的問題mybatis
使用的繼承SqlSessionDaoSupport的方式來完成SqlSessionTemplate的注入. 按道理SqlSessionDaoSupport應該也支持註解注入的. 還從網上下了源代碼看, 貌似也沒問題. 是在個人工程中卻一直不行. 後來看了一下版本好,才發現mybatis-spring.jar從1.2版本去掉了Autowire的註解.app
找到緣由了, 就好解決了. 在工程中增長了一個baseDAO, 重寫了setSqlSessionTemplate, 並增長註解
package dao;import javax.annotation.Resource;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.support.SqlSessionDaoSupport;public class BaseDao extends SqlSessionDaoSupport{@Resourcepublic void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {super.setSqlSessionTemplate(sqlSessionTemplate);}protected <S> S getMapper(Class<S> clazz) {
return getSqlSession().getMapper(clazz);
}}
2. jQGrid沒法解析從後臺返回的json數據
1. jQGrid須要經過jsonReader來指定客戶端如何解析服務端傳過來的json數據
對應後臺返回的數據應該是:
{"gridModel":
[{"birthday":null,"id":1,"name":"wang","sex":1}],"page":0,
"record":1,
"rows":0,
"total":1
}
2. struts配置文件中要經過正則表達式指定返回json數據, 不然頁面上不會顯示數據.
<action name="jqGridUserActon" class="jqGridUserAction"><result name="success" type="json"><param name="includeProperties">^gridModel\[\w+\]\.\w+,rows, page, total, record</param><param name="noCache">true</param><param name="ignoreHierarchy">false</param></result></action>