簡化Spring(4)–View層

來源:互聯網
上載者:User
    作者:江南白衣 

    人生像個舞台,請良家少女離開。
    同樣的,Freemarker和Velocity愛好者請跳過本篇。與棄用webwork而單用Spring MVC Controller介面的理由一樣,Freemarker本來是一樣好東西,還跨界支援jsp 的taglib,而且得到了WebWork的全力支援,但為了它的非標準化,使用者數量與IDE的缺乏,在View層我們還是使用了保守但人人會用,IDE友好的JSP2.0 配合JSTL。

    對於B/S結構的公司專屬應用程式軟體來說,基本的頁面不外兩種,一種是填Form的,一種是DataGrid 資料列表管理的,再配合一些css, js, ajax的效果,就是View層要關注的東西了。

1. JSP 2.0的EL代替<c:out>
JSP2.0可以直接把EL寫在html部分,而不必動用<c:out>節點後,老實說,JSP2.0+JSTL達到的頁面效果,已不比Velocity相差多少了。

<p>{goods.name}</p> 
代替
<p><c:out value="{goods.name}"/></p>

(除了EL裡面不能調用goods的函數,sun那幫老頑固始終堅持JSTL只能用於資料顯示,不能進行資料操作,所以不能調用bean的get/set外的方法)

 2. 最懶的form 資料繫結

    Spring少得可憐的幾個tag基本上是雞肋,完全可以不要。 Spring的Tag主要用來把VO的值綁到input框上。但是,和Struts一樣,需要逐個Input框綁定,而且文法極度冗長,遇到select框還要自己進行處理.....典型的Spring Sample頁面讓人一陣頭暈.

    而jodd的form tag給了我們懶人一個懶得多的方法,只要在<form>兩頭用<jodd:form bean="myVO"></jodd:form>包住,裡面的所有input框,select框,checkBox...統統自動被綁定了,這麼簡單的事情,真不明白struts,spring為什麼不用,為了不必要的靈活性麼?

<form>
<jodd:form bean="human">
<input type="text" name="name">
<input type="radiobox" name="sex" value="man">
<select name="age">
  <option value="20">20</option>
  <option value="30">30</option>
</select>
</jodd:form>
</form> 

 

不過,jodd有個致命弱點是不能綁定內嵌對象的值。比如Order(訂單)對象裡有個Customer(顧客)對象,jodd就不能像 struts,spring一樣用如下文法綁定:

 

<input name="customer.customerNo">

這是因為它的beanUtils比Jakata Common弱,用了一個錯誤的思路的緣故。 動用beanUtils修改一下就可以了,修改後的源碼可以在這裡下載。

3. DataGrid資料列表

DisplayTag和ValueList都屬於這種形式的Tag Library。但最近出現的Extreme Table是真正的killer,他本身功能強大不說,而且從一開始就想著如何讓別人進行擴充重載,比如Extend Attributes機制就是DisplayTag這樣的讓千人一面者不會預留。

4.css, javascript, ajax
天下紛擾,沒有什麼特別想講想推薦的,愛誰誰吧。Buffalo, DWR, Scriptaculous, Prototype, AjaxTags, AjaxAnywhere, Rico, Dojo, JSON-RPC,看著名字就頭痛。

相關文章
簡化Spring(1)--設定檔
簡化Spring(2)--Model層
簡化Spring(3)--Controller層
簡化Spring(4)--View層

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.