一套開源的 java 平台 web構架,體積小巧,使用模板製作頁面。標準的(html+css+javascript) UI方式。
基本介紹
- 外文名:jspx.net
- 包括:ui、ioc、cache
- 包含:完整的架構體系
- 支持:分散式事務支持
簡介,特點,功能說明,
簡介
丟掉了jsp編譯的煩惱和使用tag的麻煩, 完整的架構體系,包括了ui、ioc、cache、連線池、驗證、模板、資料庫查詢更新等功能和完整代碼。配置和使用上類似ssh構架,但體積更小,功能不弱,b/s,c/s 構架都可以使用.為了提高易用性,學習和使用上沒有使用特殊技術,語言上只使用了標準的 java 和javascript,模板標籤類似freemaker(將非XML標準的Freemaker改為標準的XML標籤)模板語言引擎使用javascript,所以對於ssh有一定了解的人很容易上手.完整的構架結構,包含了資料庫到頁面顯示的繁多功能,支持分散式事務支持,hsession 遠程調用等。
特點
1.設計上儘量使用jdk內置庫,儘量不使用第三方庫。2M不到的包實現了大部分ssh的功能.想想ssh裡邊的各種jar包上100M的恐怖.在來看看這個構架,你會感覺如此輕盈。
2. sober簡化了資料庫的使用,避免了hibernate 的映射查詢和映射後的查詢的陷阱.提高開發速度,不提高難度。
3. 模板頁面更方便調試,而且MVC分離.提供了dw的搭建外掛程式.開發方便.比普通的jsp更容易安裝,運行不需要編譯。.保證了構架的清晰並使用標準的html+css+javascript方式配合模板輸出,頁面乾淨整潔。
4. javascript在伺服器和客戶端映射執行,一次代碼定義,可以伺服器和瀏覽器兩頭驗證.並且可以綁定到資料庫保存驗證。將ui驗證、伺服器驗證和資料庫驗證合為一體。
5. web UI使用mootools庫,如果使用壓縮gzip方式發布.一套ui的js代碼在200k左右.實現了大部分的常用ui功能.其中包括表格,日曆,切換標籤,相冊等。javascript庫很多,可以任意選擇搭配,默認提供一套簡單的ui滿足基本開發。
功能說明
- sioc
IOC容器,特點小型,快速,支持變數類型,所有bean 都是延時載入,配置直觀.能夠代理創建,也可以實現AOP。
- txweb
web action 構架,很像xwork,但使用模版語言生成頁面,XML方向請求載入變數,完全放棄jsp, 在頁面顯示前已經生成WEB頁面,並且你可以得到要顯示的HTML代碼.且支持jdk1.5的標籤配置跳轉,也可象Struts2(webwork2)那樣配置跳轉,特點小,速度快.不需要編譯. 並且提供了hsession 直接調用action的接口,能夠方便是實現hsession 方式的分散式。action 名稱支持通配符方式,可以實現類似resFull方式,但不能達到0配置。 內置了一個強大的上傳組件(支持檔案編碼,支持flash方式上傳,能個自動自動將中文檔案名稱轉換為拼音檔案名稱,重複檔案名稱能更具序號自增),request.session等直接使用,不像Struts2那么麻煩。
得到參數直接 getString('varName'), getInt('varName') 就可以得到,
如果要得到一個bean對象只需要 , BeanName bean= (BeanName) getBean(BeanName.class);
這樣頁面參數就已經放入bean裡邊了。參數傳遞非常方便。
sober
資料庫ORM組件,支持jdk1.5的標籤配置資料庫映射,提供Amber,hibernate,ibatis 的部分優秀的查詢方式和映射配置,儘量的保證jdbc高速度.細粒度控制cache。避免了hibernate的很多切點。
- scriptmark
一個類似Freemarker的模板語言,標籤類似Freemarker,但更加標準化。使用javascript引擎。
標籤例子:
list________
<#list v=list>
<li>${v.index}-${v}</li>
</#list>
if____________
<#if where=a=='11'>
out:aaaaaaa
<#else>
out:bbbbbbbb
</#else>
</#if>
date ______格式化輸出
${date.string('yyyy年MM月dd')}
date ______格式化輸出
${date.string('yyyy年MM月dd')}
mynum=12345____函式調用
${mynum.toChineseCurrency()} ${mynum.toChineseNumber()}
結果:壹拾貳萬叄仟肆佰伍拾陸圓整 一十二萬三千四百五十六
結對值 ${-21321.abs()}
同類模板性能簡單比較 測試環境:多執行緒並發,交叉模板方式測試, Freemaker 表現相當優秀,而網上一些朋友在單執行緒下比較,說得Freemaker很差是錯誤的,我在多執行緒,交叉模板方式下測試Freemaker 性能相當好, scriptMaker 在高壓的時候約有優勢,低壓要弱一些。本測試沒有使用io ,完全記憶體方式。
Freemaker 非常穩定,快,(但有快取結果的嫌疑,有待驗證),但要擴展功能不方便。
CommonTemplate:速度和穩定行的欠佳,多執行緒下容易錯誤,表達方式很豐富。
velocity: 運行很快, 多執行緒下容易錯誤,最快的是他,最容易出錯的也是它,也許後邊版本不會這樣。
ScriptMark:穩定 速度在 Freemaker,velocity 之後,功能最豐富
smarty4j:穩定,單執行緒最快,多執行緒最慢的一個。
validator
驗證,綁定在sober和txweb中使用
1.配置驗證條件,和顯示訊息
例如:serialCode 欄位名稱,serialCodeMsg:html 裡邊div 顯示的id
<validation dataType="isLengthBetween(1,50)" field="serialCode" msgId="serialCodeMsg" needed="false">
<message>證書編號</message>
<error>證書編號,沒有填寫</error>
<success>驗證通過</success>
</validation>
2. sioc 中引入驗證模組
<bean id="validator" class="com.jspx.txweb.support.ValidatorAction" singleton="false">
<string name="configFile">上邊配置說保存的xml檔案名稱稱</string>
</bean>
3. 頁面中引入javascript
new Request.Validator("validator.${suffix}", "上邊配置所在表單ID");
- jspxpool
<bean id="jspxDataSource" class="com.jspx.datasource.JspxDataSource" destroy="close" singleton="true">
<string name="driverClass">${driverClassName}</string>
<string name="jdbcUrl"><![CDATA[${jdbcUrl}]]></string>
<string name="user">${username}</string>
<string name="password"><![CDATA[${password}]]></string>
<int name="maxPoolSize">${maxPoolSize}</int>
</bean>
dreamweaver For jspx
提供的一套dw8-10 的開發外掛程式,後綴名ftl, 安裝方法解壓後覆蓋相應的版本既可。
jmaker
開發java工具IDEA 的一個外掛程式,能夠自動生成這個構架的bean,DAO,action.view和配置,減少開發人員的工作量。
項目開始於2005年 2007 年開始開源 2010年 項目已經成熟
系統代碼都使用最新的技術,所以JDK必須在1.6以上
推薦組合:
1. jdk1.6 + tomcat6.x + mysql 5.x
2. jdk1.6 + resin 3.x以上 + postgresql 8.4 以上