日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【web开发学习笔记】Structs2 Action学习笔记(一个)

發(fā)布時間:2024/1/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【web开发学习笔记】Structs2 Action学习笔记(一个) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter準備和運行
2、

<filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>? ??url-pattern約定熟成僅僅寫/*,不是必需寫*.action
3、

<package name="default" namespace="/" extends="struts-default"><action name= "hello"><result> /Hello.jsp</result></action><span style="white-space:pre"> </span></package>? ??namespace="/"和訪問的路徑意義相應(yīng);?
? ??/hello.action
? ??訪問了action。給了我們result的結(jié)果。
? ??默認的action能夠省略。
4、關(guān)聯(lián)structs源碼和java docs
? ? jar文件右鍵代->properies->Java Source Attachment
? ??設(shè)置源代碼
? ??? ??D:/Program Files/struts-2.1.6/src/core/src/main/java
? ??javadoc 文檔
? ??? ??file:/D:/Program Files/struts-2.1.6/docs/struts2-core/apidocs/
? ??設(shè)置xml提示:
? ??? ??a)window – preferences – 搜索 catalog – add?

? ??? ? b)選擇key type為URI

? ??? ??c)key: http://struts.apache.org/dtds/struts-2.0.dtd

? ??? ??d)location: 相應(yīng)的dtd文件。位于struts-core包中,解壓開。指定相應(yīng)位置,如D:/Program?Files/struts-2.1.6 \lib\struts2-core-2.1.6\struts-2.0.dtd
5、structs執(zhí)行機制
? ??client -> url -> Http請求 -> Tomacat -> 查找相應(yīng)的Webapplication -> web.xml -> filter doFilter方法->
<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping> ? ??->參考struct.xml -> 查找相應(yīng)的namespace -> 查找相應(yīng)的action -> 查找相應(yīng)的result?-> 反饋result -> 請求Forwad給目標文件? <package name="default" namespace="/" extends="struts-default"><action name="index"><result>/index.jsp</result></action></package> 6、namespace決定了action的訪問路徑,默覺得""。能夠接收全部路徑的action
? ??namespace能夠?qū)憺?,或者/xxx,或者/xxx/yyy,
? ??相應(yīng)的action訪問路徑為/index.action,/xxx/index.action。或者/xxx/yyy/index.action.
? ??namespace最好也用模塊來進行命名?

<constant name="struts.devMode" value="true" /><package name="front" extends="struts-default" namespace="/front"><action name="index"><result>/Namespace.jsp</result></action></package><package name="main" extends="struts-default" namespace=""><action name="index"><result>/Namespace.jsp</result></action></package>? ??struct.xml分析
? ??? ??package作用:避免action的重名和沖突問題;
? ??? ??namespace="/front",必須以斜杠開頭,namespace最好也用模塊來進行命名;
? ??? ??不寫namespace,等效于namespace = "",意味著僅僅要找到action,全都交給
? ??? ??namespace處理。
? ??? ??? ??? ??流程:先找相應(yīng)路徑下的action進行匹配。假設(shè)沒有的話找namespace為空的action。
? ??? ??? ??? ??假設(shè)還沒有找到action則會報錯;
7、 詳細視圖的返回能夠由用戶自定義的Action來決定;
? ??詳細的手段是依據(jù)返回的字符串找到相應(yīng)的配置項,來決定視圖的內(nèi)容;

<constant name="struts.devMode" value="true" /><package name="front" extends="struts-default" namespace="/"><action name="index" class="com.struts2.front.action.Index"><result name="success">/ActionIntroduction.jsp</result></action></package>? ??詳細Action的實現(xiàn)能夠是一個普通的java類。里面有public String execute方法就可以或者實現(xiàn)
? ??Action接口;

package com.bjsxt.struts2.front.action;import com.opensymphony.xwork2.Action;public class IndexAction1 implements Action {@Overridepublic String execute() {return "success";}} ?? ??配置分析:
? ??? ??? ??<class="com.bjsxt.struts2.front.action.Index">
? ??? ??? ??struct.xml -> 找到相應(yīng)的class -> 實例化對象 -> 運行相應(yīng)的execute()方法
? ??運行過程:
? ??? ??讀到xml -> action是class -> 找到class對象(每次訪問必須new一個對象) ->?
? ??? ??當不配置class的時候,默認的class是ActionSupport。

? ??? ??ActionSupport源代碼

public String execute() throws Exception {return SUCCESS;}

? ??最經(jīng)常使用的是從ActionSupport繼承。優(yōu)點在于能夠直接使用Struts2封裝好的方法

package com.struts2.front.action;import com.opensymphony.xwork2.ActionSupport;public class IndexAction2 extends ActionSupport { @Overridepublic String execute() {return "success";}}

? ??? ??原因:ActionSupport內(nèi)部已經(jīng)為我們封裝了很多能夠直接調(diào)用的方法,在子類中能夠直接使用。

以上是根據(jù)麻石兵云集了來自老師的教程。

版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的【web开发学习笔记】Structs2 Action学习笔记(一个)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。