青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

xiaoguozi's Blog
Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····
提交服務器處理業務后結果返回頁面的處理,Struts2提供了對不同種類返回結果的支持,常見的有JSP,FreeMarker,Velocity等。

struts.xml配置文件中result的語法:<result name="" type="">xxxxx</result>

Struts2支持的不同類型的返回結果為:

Chain Result-->type="chain"
用來處理Action鏈

Dispatcher Result -->type="dispatcher"
用來轉向頁面,通常處理JSP

FreeMarker Result -->type="freemarker"
處理FreeMarker模板

HttpHeader Result -->type="httpheader"
用來控制特殊的Http行為

Redirect Result -->type="redirect"
重定向到一個URL

Redirect Action Result -->type="redirectAction"
重定向到一個Action

Stream Result -->type="stream"
向瀏覽器發送InputSream對象,通常用來處理文件下載

Velocity Result -->type="velocity"
處理Velocity模板

XLST Result -->type="xslt"
處理XML/XLST模板

PlainText Result -->type="plainText"
顯示原始文件內容,例如文件源代碼


另外第三方的result類型還包括JasperReports Plugin,專門用來處理JasperReport類型的報表輸出。

在struts-default.xml文件中已經有了對于所有類型Result的定義:

Java 代碼

1. <result-types>  
2.  
3.     <result-type name="chain"  
4.  
5.              class="com.opensymphony.xwork2.ActionChainResult"/>  
6.  
7.     <result-type name="dispatcher"  
8.  
9.              class="org.apache.struts2.dispatcher.ServletDispatcherResult"  
10.  
11.              default="true"/>  
12.  
13.     <result-type name="freemarker"  
14.  
15.              class="org.apache.struts2.views.freemarker.FreemarkerResult"/>  
16.  
17.     <result-type name="httpheader"  
18.  
19.              class="org.apache.struts2.dispatcher.HttpHeaderResult"/>  
20.  
21.     <result-type name="redirect"  
22.  
23.              class="org.apache.struts2.dispatcher.ServletRedirectResult"/>  
24.  
25.     <result-type name="redirectAction"  
26.  
27.              class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>  
28.  
29.     <result-type name="stream"  
30.  
31.              class="org.apache.struts2.dispatcher.StreamResult"/>  
32.  
33.     <result-type name="velocity"  
34.  
35.              class="org.apache.struts2.dispatcher.VelocityResult"/>  
36.  
37.     <result-type name="xslt"  
38.  
39.              class="org.apache.struts2.views.xslt.XSLTResult"/>  
40.  
41.     <result-type name="plainText"  
42.  
43.              class="org.apache.struts2.dispatcher.PlainTextResult" />  
44.  
45.     <!-- Deprecated name form scheduled for removal in Struts 2.1.0.  
46.  
47.          The camelCase versions are preferred. See ww-1707 -->  
48.  
49.     <result-type name="redirect-action"  
50.  
51.              class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>  
52.  
53.     <result-type name="plaintext"  
54.  
55.              class="org.apache.struts2.dispatcher.PlainTextResult" />  
56.  
57. </result-types>  

<result-types>

<result-type name="chain"

class="com.opensymphony.xwork2.ActionChainResult"/>

<result-type name="dispatcher"

class="org.apache.struts2.dispatcher.ServletDispatcherResult"

default="true"/>

<result-type name="freemarker"

class="org.apache.struts2.views.freemarker.FreemarkerResult"/>

<result-type name="httpheader"

class="org.apache.struts2.dispatcher.HttpHeaderResult"/>

<result-type name="redirect"

class="org.apache.struts2.dispatcher.ServletRedirectResult"/>

<result-type name="redirectAction"

class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>

<result-type name="stream"

class="org.apache.struts2.dispatcher.StreamResult"/>

<result-type name="velocity"

class="org.apache.struts2.dispatcher.VelocityResult"/>

<result-type name="xslt"

class="org.apache.struts2.views.xslt.XSLTResult"/>

<result-type name="plainText"

class="org.apache.struts2.dispatcher.PlainTextResult" />

<!-- Deprecated name form scheduled for removal in Struts 2.1.0.

The camelCase versions are preferred. See ww-1707 -->

<result-type name="redirect-action"

class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>

<result-type name="plaintext"

class="org.apache.struts2.dispatcher.PlainTextResult" />

</result-types>



從上述代碼中可以看出在不指定Result類型的時候默認使用dispatcher類型。


定義一個Result值,

Java 代碼

1. <result name="success" type="dispatcher">  
2.  
3.     <param name="location">/myjsp.jsp</param>  
4.  
5. </result>  

<result name="success" type="dispatcher">

<param name="location">/myjsp.jsp</param>

</result>


由于type默認值是dispatcher,所以這里不需要定義,另外name的默認值為success所以這里也不需要定義。
上述代碼可以簡寫為:

Java 代碼

1. <result>  
2.  
3.     <param name="location">/myjsp.jsp</param>  
4.  
5. </result>  

<result>

<param name="location">/myjsp.jsp</param>

</result>




另外location參數也可以直接卸載result標簽內部(也就是無需再result里面使用),所以上述代碼的最簡單的寫法為:

Java 代碼

1. <result>/myjsp.jsp</result>  

<result>/myjsp.jsp</result>



我們也可以定義多個不同的result

Java 代碼

1. <action name="Hello">  
2.  
3. <result>/hello/hello.jsp</result>  
4.  
5. <result name="error">/hello/error.jsp</result>  
6.  
7. <result name="input">/hello/input.jsp</result>  
8.  
9. </action>  

<action name="Hello">

<result>/hello/hello.jsp</result>

<result name="error">/hello/error.jsp</result>

<result name="input">/hello/input.jsp</result>

</action>



上 述代碼的含義為,名字為Hello的Action有三個返回結果,并且都是 dispatcher類型(默認類型),這三個返回值的名字分別為success(默認值),error,input(當輸入不通過時,action 方法返回input),對應的頁面的路徑分別為 /hello/result.jsp,/hello/error.jsp,/hello/input.jsp。

有些時候我們需要一個定義在全局的result,這個時候我們可以在package內部定義全局的result,例如:

Java 代碼

1. <global-results>  
2.  
3. <result name="error">/error.jsp</result>  
4.  
5. <result name="invalid.token">/error.jsp</result>  
6.  
7. <result name="login" type="redirect-action">login!input</result>  
8.  
9. </global-results>  

<global-results>

<result name="error">/error.jsp</result>

<result name="invalid.token">/error.jsp</result>

<result name="login" type="redirect-action">login!input</result>

</global-results>



動態返回結果

有些時候,只有當Action執行完璧的時候我們才知道要返回哪個結果,這個時候我們可以在Action內部定義一個屬性,這個屬性用來存儲 Action執行完璧之后的Result值,例如:

Java 代碼

1. private String nextAction;  
2.  
3. public String getNextAction() {  
4.  
5.     return nextAction;  
6.  
7. }  

private String nextAction;

public String getNextAction() {

return nextAction;

}



在strutx.xml配置文件中,我們可以使用${nextAction}來引用到Action中的屬性,通過${nextAction}表示的內容來動態的返回結果,例如:

Java 代碼

1. <action name="fragment" class="FragmentAction">  
2.  
3. <result name="next" type="redirect-action">${nextAction}</result>  
4.  
5. </action>  

<action name="fragment" class="FragmentAction">

<result name="next" type="redirect-action">${nextAction}</result>

</action>



上述Action的execute方法返回next的時候,還需要根據nextAction的屬性來判斷具體定位到哪個Action。


在struts.xml配置文件中,我們可以使用method=""來設置調用類的哪個方法,這樣就可以在一個JAVA類中使用不同的方法來實現不同的功能,就無需每個功能寫一類了,例如:
Java 代碼

1. <action name="fragment" class="cn.com.web.FragmentAction" method="add">  
2.       <result>/success.jsp</result>  
3. </action> 
posted on 2011-04-05 18:17 小果子 閱讀(548) 評論(0)  編輯 收藏 引用 所屬分類: 框架
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区欧美在线观看| 日韩午夜黄色| 欧美中文字幕不卡| 国产精品亚洲综合| 久久国产日韩| 欧美在线一二三| 精品69视频一区二区三区| 久久久久免费视频| 久久综合九色九九| 艳妇臀荡乳欲伦亚洲一区| 夜夜狂射影院欧美极品| 国产精品美女主播在线观看纯欲| 亚洲欧美国产日韩天堂区| 亚洲专区一区二区三区| 狠狠噜噜久久| 亚洲精品视频一区| 国产精品丝袜久久久久久app| 久久国产黑丝| 美女尤物久久精品| 亚洲一区二区三区精品在线观看| 亚洲欧洲99久久| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲一区bb| 韩国一区电影| 亚洲久色影视| 国产一区二区剧情av在线| 欧美激情一区二区三区在线视频观看| 欧美日本精品| 久久久噜噜噜久久久| 欧美成人一区二区在线| 香蕉国产精品偷在线观看不卡| 久久成人免费电影| 在线亚洲欧美视频| 久久综合九色| 性色av一区二区三区| 欧美69wwwcom| 久久久久**毛片大全| 欧美日本国产一区| 你懂的网址国产 欧美| 国产精品视频| 亚洲人成网站在线播| 国产区精品视频| 99pao成人国产永久免费视频| 国产一区二区三区观看| 99re热精品| 亚洲日本一区二区| 欧美一级欧美一级在线播放| 一本综合精品| 欧美激情第1页| 欧美粗暴jizz性欧美20| 国产在线成人| 欧美一级一区| 欧美伊久线香蕉线新在线| 欧美日韩在线播放一区| 亚洲国产一区二区三区高清| 在线观看欧美一区| 欧美一区亚洲二区| 欧美一级二区| 国产精品你懂的| 一区二区不卡在线视频 午夜欧美不卡在 | 免费观看一级特黄欧美大片| 国产精品私房写真福利视频| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 午夜视频在线观看一区二区三区 | 久久综合中文| 欧美aaa级| 影音先锋一区| 久久频这里精品99香蕉| 狂野欧美一区| 在线看片成人| 另类尿喷潮videofree | 亚洲欧美日韩人成在线播放| 欧美视频官网| 亚洲在线视频免费观看| 欧美一区精品| 国产一区二区黄色| 久久久久国产精品厨房| 久久综合久久综合这里只有精品 | 欧美日韩第一区| 99国产精品国产精品久久 | 尤妮丝一区二区裸体视频| 久久久99精品免费观看不卡| 久久亚洲视频| 日韩视频―中文字幕| 欧美激情a∨在线视频播放| 亚洲人成网站999久久久综合| aa亚洲婷婷| 欧美亚洲成人精品| 欧美一区二区私人影院日本 | 日韩视频―中文字幕| 欧美日韩在线观看视频| 午夜亚洲视频| 免费不卡中文字幕视频| 一区二区日韩欧美| 国产精品一卡| 美女网站在线免费欧美精品| 亚洲伦理自拍| 久久久精品一区| 亚洲理伦在线| 国产午夜精品久久久| 美国成人毛片| 亚洲欧美日韩在线观看a三区| 久久一区二区三区国产精品 | 亚洲人成在线播放网站岛国| 欧美日韩亚洲高清| 欧美中文在线观看国产| 最新中文字幕亚洲| 久久久久九九九| 99精品视频免费| 国产一区二区三区在线观看免费| 欧美成人精品激情在线观看| 亚洲男人影院| 亚洲精品乱码久久久久久黑人 | 日韩视频在线一区二区| 国产女人18毛片水18精品| 欧美aaa级| 久久精品人人做人人爽| 中文精品视频一区二区在线观看| 卡一卡二国产精品| 性8sex亚洲区入口| 一本色道久久加勒比精品| 在线观看91精品国产入口| 国产精品播放| 欧美日韩免费高清| 欧美成人免费播放| 老牛嫩草一区二区三区日本| 亚洲欧美视频在线观看| 日韩视频永久免费观看| 亚洲国产精品久久久| 美女国产精品| 久久裸体视频| 欧美专区第一页| 亚洲一区二区三区四区五区黄| 亚洲人成7777| 亚洲第一色在线| 影音先锋久久资源网| 国产一区二区三区在线观看视频 | 亚洲欧美变态国产另类| 日韩一级精品视频在线观看| 亚洲国产欧美一区二区三区久久 | 蜜桃伊人久久| 麻豆9191精品国产| 久久久久久尹人网香蕉| 欧美在线视频播放| 欧美一二区视频| 久久国产手机看片| 久久se精品一区精品二区| 午夜久久黄色| 久久国产精品久久国产精品| 欧美一区二区三区的| 亚洲欧洲av一区二区三区久久| 亚洲一区在线免费| 午夜精品国产更新| 久久精品国产久精国产一老狼| 欧美在线不卡| 久久久久九九九九| 欧美1区2区视频| 亚洲激情小视频| 夜夜嗨av一区二区三区网页| 夜夜嗨av一区二区三区中文字幕| 国产精品99久久久久久久女警| 亚洲视频欧洲视频| 欧美影院成年免费版| 久久久噜久噜久久综合| 美女视频一区免费观看| 欧美日韩另类国产亚洲欧美一级| 国产精品sm| 国产日韩视频一区二区三区| 国外成人性视频| 亚洲肉体裸体xxxx137| 亚洲午夜羞羞片| 久久精品视频在线播放| 欧美成人激情在线| 亚洲美女在线视频| 午夜在线观看欧美| 欧美ed2k| 国产麻豆91精品| 亚洲欧洲日产国产综合网| 亚洲午夜精品一区二区三区他趣| 久久大香伊蕉在人线观看热2| 另类亚洲自拍| 一本色道久久综合亚洲精品婷婷| 性欧美xxxx大乳国产app| 另类激情亚洲| 国产精品亚洲综合色区韩国| 亚洲国产日韩精品| 欧美一级一区| 亚洲国产乱码最新视频| 午夜视频在线观看一区| 欧美区日韩区| 国产一区二区三区四区在线观看 | 亚洲国产另类 国产精品国产免费| 亚洲一区久久| 欧美xxx在线观看| 亚洲欧美日韩视频二区| 欧美久久视频| 亚洲国产专区| 久久综合给合久久狠狠色| 艳女tv在线观看国产一区| 欧美bbbxxxxx|