freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

struts20第05章result-資料下載頁

2025-08-16 23:57本頁面
  

【正文】 從圖510可以看出,瀏覽器直接進(jìn)入了南京郵電大學(xué)的主頁。從上面的執(zhí)行流程可以看出,Redirect實現(xiàn)了上述提到的三種不同的返回方式,所以Redirect的功能要比Dispatcher的強(qiáng)大。但Redirect有自身的不足之處,通過下面與Dispatche的比較就會發(fā)現(xiàn)?,F(xiàn)在看圖58和59的不同之處,為什么圖58不顯示“hello world!”?這是因為兩個result的返回類型不相同,工作機(jī)制也不相同。Redirect把一個HTTP返回碼(譬如SUCCESS)以及返回的頁面位置一起重新發(fā)給Web服務(wù)器,然后由Web服務(wù)器產(chǎn)生一個新的HTTP請求,就會產(chǎn)生一個新的線程,保存在原來Action執(zhí)行的線程中的數(shù)據(jù),就無法訪問,所以無法顯示出“hello world!”;而Dispatcher則不同,它只是發(fā)出內(nèi)部的資源請求,只需要一個HTTP請求,就可以為瀏覽器生成視圖,它的操作都是在一個線程中完成的。如果result需要包含Action的數(shù)據(jù),那么redirect不是一個可行的方法。因為新的HTTP請求是在Servlet容器的新的線程中處理的,那么ActionContext中的所有狀態(tài)都不會存在。圖511展示了這兩種Result類型的執(zhí)行過程,讀者可以進(jìn)一步了解他們的差別。圖511 DispatcheResult與RedirectResult工作流程比較 ChainChain,又叫Action鏈,就是把相關(guān)的幾個Action連接起來,完成一個固定的功能,但是與Redirect是有區(qū)別的。通過下面的詳細(xì)的介紹,讀者會有一個全面的認(rèn)識。知道功能之后看看它的源代碼, Result是這樣定義的:resulttype name=chain class=/,壓縮包解壓之后,在路徑\\\src\java\\opensymphony\,內(nèi)容如下:/*省略語句*/ public class ActionChainResult implements Result { private static final Log log = ()。 public static final String DEFAULT_PARAM = actionName。 private static final String CHAIN_HISTORY = CHAIN_HISTORY。 private ActionProxy proxy。 private String actionName。 private String namespace。 private String methodName。/*省略語句*/ public void execute(ActionInvocation invocation) throws Exception { /*省略語句*/ ()。 } /*省略語句*/ }從粗體看出,Chain是直接繼承Result接口的,然后直接實現(xiàn)execute()方法。具體的內(nèi)容有興趣的讀者可以自己找出來研究。從代碼可以看出,Chain Result有三個參數(shù),具體功能如下:n actionName(默認(rèn)):被調(diào)用的action的名字。n namespace:被調(diào)用的action的名稱空間。如果名稱空間為空,這默認(rèn)為當(dāng)前名稱空間。n method:用于指定目標(biāo)action的另一個方法被調(diào)用。如果空,默認(rèn)為excute方法。注意:在編程時只需要寫action的名字就行,不用像這樣調(diào)用:,只要寫helloworld就行了。在這里還是借用redirect的例子,來看看Chain怎么用的。其他的地方都不用再改變,,改過之后如下文所示:action name=OtherTest class= result name=success type=chainhelloworld/result /action改變只是type屬性值以及傳入的參數(shù)。如粗體所示,其他地方不用改變。下面來檢驗一下,在地址欄中輸入:://localhost:8080/ww/,就會出現(xiàn)我們最熟悉的如圖512的頁面。圖512 輸入頁面那么Chain Result與Redirect Result有什么不同呢。下面是Chain Result的執(zhí)行流程:圖513 ChainResult的流程可以看出最大的區(qū)別就是,Chain Result還在同一個HTTP請求中。Action的數(shù)據(jù)還可以使用,所以有的地方可以使用Chain但是卻不能用Redirect。在Struts2框架里,不僅可以使用JSP視圖,還可以使用一些模板語言,譬如:Velocity Result,F(xiàn)reeMarker Result,他們的功能很強(qiáng)大,而且處理速度很快,處理速度一般是JSP的幾倍。在Struts2中FreeMarker技術(shù)得到更多的推薦。還有一種JasperReports Result可用來構(gòu)建各種格式的報表,例如:PDF和Excel格式的報表。因為后面的視圖技術(shù)章節(jié)會重點介紹這些視圖技術(shù),在這里只對Result的配置做一些簡單的介紹,對這些視圖的更深層的研究請看第八章的內(nèi)容。,代碼如下:resulttype name=velocity class=/ resulttype name=freemarker class=/JasperReports ,這個包存在\\\lib目錄下,用WinRAR解壓,在這個文件下有這樣的定義:resulttype name=jasper class=/有興趣的讀者可以找到源文件來看看??梢灾赖氖荢truts2已經(jīng)對這些技術(shù)提供了支持,因此在配置這些Result類型的時候跟Chain、Redirect是一樣的。下面是一個Velocity配置的例子:result name=success type=velocity/result其他另外兩種result配置都是一樣,接下來看看他們的各自參數(shù):Velocity Result參數(shù):n location (默認(rèn)) 模板的位置。n parse 默認(rèn)為true. 如果設(shè)置為false, location參數(shù)不會被當(dāng)作Ognl表達(dá)式解析。FreeMarker Result參數(shù):n location (默認(rèn)) 模板的位置。n parse 默認(rèn)為true. 如果設(shè)置為false, location參數(shù)不會被當(dāng)作Ognl表達(dá)式解析。n contentType 如果不指定默認(rèn)為text/html。JasperReports Result參數(shù):n location(默認(rèn)):編譯過的jasper報表定義文件()的位置,相對于當(dāng)前URL。n dataSource (必需):從ValueStack中取數(shù)據(jù)源的Ognl表達(dá)式(通常數(shù)據(jù)源為List)。n parse:默認(rèn)為true。如果設(shè)置為false,location參數(shù)不會被當(dāng)作Ognl表達(dá)式解析。n format:報表生成格式。如果不指定格式,默認(rèn)使用PDF。n contentDisposition:布局(默認(rèn)為inline,值一般為filename=)。n documentName:文檔的名字(會生成頭 Contentdisposition = X。 filename=X.[format])。n delimiter:生成CSV報表的分隔符。默認(rèn)為字符,。n imageServletUrl:當(dāng)以context page為前綴時可以返回報表圖片的url的名字。從上面可以看到很熟悉的幾個參數(shù),譬如:location和parse。至于還有其他的許多參數(shù)具體怎么配置會在第八章重點介紹,這里不再贅述。本章主要闡述Struts2的Result類型。一開始通過自己寫一個Result類型,來理解Result的整個運行過程。在這個基礎(chǔ)上列出了Struts2幫我們已經(jīng)定義好的Result類型,我們借助源代碼來理解了三種常用的Result類型。最后那三種關(guān)于視圖技術(shù)的Result只是簡單的提了幾句,因為后面會花整個章節(jié)去了解。學(xué)完本章,希望讀者對Struts2的整個工作流程又能多了一步理解,可以說Result已經(jīng)是一個Web應(yīng)用的最后階段了,到底怎么返回頁面是很有區(qū)別的,希望讀者自己多動手去試試每個Result的優(yōu)點,由于各種限制,作者不可能每種Result都詳細(xì)去講解。在學(xué)完Action、Interceptor、Result之后,可以說讀者已經(jīng)掌握Struts2的核心部分,讀者可以去嘗試寫一些稍微復(fù)雜的Web應(yīng)用了。21
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1