又是忙碌的一天~對struts2有了一定了解,今天有點頭疼...於是看了些簡單的東西,總結了一下struts1與struts2的區別(主要是struts2的一些優勢):
1、struts2的pojo類,不必像struts1一樣要繼承action
2、對servlet的依賴性:struts1的依賴性較強;struts2與servlet則徹底分開,不依賴
3、封裝請求引數:struts2合併了action和actionform,方便了一些
4、測試性:struts1的測試非常痛苦,必須用到jsp;而struts2則方便了許多,可以單獨進行測試而不必用到jsp
其他一些比較:
型別轉化問題:struts1的屬性型別基本都是string等簡單型別;struts2支援複雜型別,如集合,自定義的型別等。
表示式語言:struts1用的是el;struts2為ognl,明顯強於簡單的el
執行緒模式:struts1為單執行緒;struts2則是乙個request分配乙個action。
生命週期:(不懂,就不解釋了)
struts2有***,多檢視等
struts2是基於webwork2的,其實與struts1並無多大關係,個人認為兩者除了都是基於mvc和名字相同,其他的都不一樣...
今天的第二個收穫ognl(物件圖導航語言)ognl.ognl類
getvalue(x,y)x為ognl表示式;y為root物件(object型別)
getvalue(x,y,z)x為ognl表示式;y為context(map);z為root物件(object型別)
例子:#username :用getvalue(x,y)檢索是否有username屬性;
#user.name:用getvalue(x,y)首先查詢是否包含user,在檢索user中是否有name屬性
用getvalue(x,y,z)則在map(key,value)中檢索「key=user,value=name」
重要介面:valuestack,實現類:ognlvaluestack
標籤:iterator value="book" id="book"
property value="#book.name"
date name="#book.date" format="yyyy-mm-dd"
(其中name對應struts.xml中的name)
book.100的book--!>
寫了個顯示圖書資訊的練習,關鍵**如下:
(list.jsp)
<%page import="com.opensymphony.xwork2.util.*"%>
<%@taglib uri="/struts-tags" prefix="s"%>
valuestack vs=(valuestack)request.getattribute("struts","value stack");
list list=(list)vs.findvalue("book");
"book!delete.action?id=<%=book.getid()%>"
頭疼啊~睡了。。。
struts2框架 第二天
1.web.xml 2.struts.xml 1.web.xml作用 是struts2框架的入口,當瀏覽器發出請求到伺服器後,首先發給web.xml,呼叫核心控制器,來執行一系列操作,然後通過呼叫configurationmanager來執行struts.xml的配置檔案。web.xml的目的就是執...
struts2框架之型別轉換(參考第二天學習筆記)
型別轉換 1.什麼是型別轉換 剛才學習了封裝請求引數,把表單資料封裝到action 模型 的屬性中。表單中的資料都是string型別,但action 模型 的屬性不一定什麼型別。將來我們還需要資料的回顯,即把action的屬性值顯示到表單中。把actoin的屬性顯示在表單中。型別轉換是雙向的 str...
第二天2個bug
今天是我進深信服第二天,其餘的還好,分配的電腦就不好說了。昨天領了電腦,機箱已經不成樣子了,還沒有硬碟的,借來了移動光碟機自己裝好系統 裝好軟體 發現這種配置的電腦根本就無法工作,cpu和記憶體使用率一直都飈在百分之七八十。無奈今天去it換了一台,奔騰4換成了賽揚430,1g的記憶體換成了2g 換了...