亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Struts2入門

  • Action內置的五個系統屬性

    查看全部
  • @Struts2---處理結果類型

    1.Structs2處理流程
    用戶請求Structs框架控制器(Action)Structs框架視圖資源
    返回String,提供代碼復用性,有利于框架分離。

    2.Action中五種內置屬性(com.opensymphony.xwork2.Action)
    (1) SUCCESS??Action正確的執行完成,返回相應的視圖,success是name屬性的默認值。
    (2) NONE??表示Action正確的執行完成,但并不返回任何事視圖。
    (3) ERROR??表示Action執行失效,返回錯誤處理視圖。
    (4) LOGIN??Action因為用戶沒有登錄的原因沒有正確執行,將返回該登錄視圖,要求用戶進行登錄驗證
    (5) INPUT??Action的執行,需要從前端界面獲取參數,INPUT就是代表這個參數輸入界面,一般在應用中,會對這些 參數進行驗證,如果驗證沒有通過,將自動返回該視圖。

    查看全部
  • @Struts2---接收參數

    接收參數
    1.使用Action的屬性接受參數,在Action中定義需要接受的屬性,并寫它的set/get方法。
    2.使用DomainModel接受參數,創建實體類定義需要接受的屬性,并set/get方法,在Action中創建實體類名屬性。并在界面進行指定。
    3.使用ModelDriver接受參數,在Action中實現ModelDriver<實體類名>接口,并實現方法返回當前需要轉換的對象,刪除set/get方法,并對 對象 進行實例化,并取消指定。
    4.request
    5.獲取List集合中的參數。獲取多個參數。

    方式一:直接在action類中創建相應的屬性和getter和setter,和前端的name名字相同。eg:前端的username,在action類中就要建立一個private String username; Struts會自動映射為這個屬性賦值

    方式二:使用DomainModel,將username 和password兩個屬性封裝為一個類User(必須是標準的JavaBean),在action中聲明這個屬性:private User user; 同時為user設置getter和setter;在前端中的name需要設置為user.name和user.password,才能映射成功

    方式三:使用ModelDriven<T>接口,這個action必須實現這個接口的public T getModel()方法。此時聲明的屬性必須實例化,eg: private User user = new User(); 同時不需要getter和setter。前端的name也只需要寫username和password就可以,不需要再加域了。這種方法時最推薦的方法,因為可以減少前后端的耦合

    查看全部
  • @Struts2---編寫struts2后綴的三種方式

    方式一:在struts.xml中設置

    <constant?name="struts.action.extension"?value="do"></constant>

    方式二:在struts.properties中設置

    struts.action.extension=action,do

    方式三:在web.xml中的struts2過濾器中初始化參數

    <init-param>
    ?<param-name>struts.action.extension</param-name>
    ?<param-value>do</param-value>
    </init-param>


    查看全部
  • @Struts2---默認Action

    <default-action-ref?name="index"></default-action-ref>
    <action?name="index">
    ???<result>/error.jsp</result>
    </action>
    查看全部
  • @Struts2---指定多個配置文件

    1.如果有很多個Action的配置文件,則需要在struts.xml中使用<include file="fileName.xml"/>來包含其他的配置文件

    2.struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防亂碼問題的出現

    3.配置文件和struts.xml的格式如下:

    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?struts?PUBLIC?"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.3//EN"?"http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
    ...
    </struts>
    查看全部
  • @Struts2---動態方法調用
    動態方法調用是為了解決一個Action對應多個請求的處理,以免Action太多。

    三種方式
    1:指定method屬性

    <action?name="addAction"?method="add"?class="com.action.HelloWorldAction">
    http://localhost:8080/struts2/aaa/addAction.action

    2:感嘆號方式

    <constant?name="struts.enable.DynamicMethodInvocation"?value="true"></constant>
    <action?name="helloworld"?class="com.action.HelloWorldAction">
    ??????<result?>/result.jsp</result>
    ??????<result?name="add">/add.jsp</result>
    ??????<result?name="update">/update.jsp</result>
    </action>
    http://localhost:8080/struts2/aaa/helloworld!add.action

    3:通配符方式(推薦)

    <action?name="*_*_*"?method="{2}"?class="com.{3}.{1}Action">
    ??????<result?>/{2}.jsp</result>
    ??????<result?name="add">/{2}.jsp</result>
    ??????<result?name="update">/{2}.jsp</result>
    </action>
    http://localhost:8080/struts2/aaa/HelloWorld_add_action.action
    查看全部
  • @Struts2---Action搜索順序

    例子:
    http://localhost:8080/product_one/hellowworld.jsp可以進入result.jsp頁面
    http://localhost:8080/product_one/aaa/ddd/ccc/hellowworld.jsp也可以進入result.jsp頁面

    Action搜索順序:
    http://localhost:8080/struts2/path1/path2/path3/student.action
    第一步:判斷package是否存在,如:path1/path2/path3/

    如果package存在
    第二步:則判斷該package中action是否存在,如果不存在則到默認namespace的package里面尋找action
    第三步:如果沒有,則報錯

    如果package不存在:
    第二步:檢查上一級路徑的package是否存在(直到默認namespace),重復第一步
    第三步:如果沒有則報錯

    如果請求為/login.action,系統會根據根命名空間("/")中查找名為login的Action,如果在根命名空間中找到了名為login的Action,則該Action處理用戶的請求;否則系統將轉為在默認命名空間中尋找名為login的Action,如果默認的命名空間中有名為login的Action,則由該Action處理用戶的請求。如果兩個命名空間中都找不到名為login的Action,那么系統將出現錯誤。

    注意:命名空間只有一個級別。如果請求的URL是/bookservice/search/get.action系統將先在/bookservice/search的命名空間下查找名為get的Action,如果在該系統命名空間內找到名為get的Action,則由該Action處理該用戶的請求;如果在該命名空間中沒有找到名為get的Action,系統將直接進入默認的命名空間中查找名為get的Action,而不會在bookservice的命名空間下查找名為get的Action。
    可以多個包使用同一個命名空間,但是相同的命名空間相當于同一個模塊,也就是同一個包。
    一個包中可以有name值相同的action,但是后面的action會把前面同名的action覆蓋掉

    查看全部
  • @Struts2---struts2訪問Servlet API的三種方式

    Servlet API
    ????HttpServletRequest
    ????HttpServletResponse
    ????ServletContext

    Struts2沒有Servlet API

    Struts2訪問Servlet API的三種方式
    1>使用ActionContext訪問Servlet API(推薦使用)

    ActionContext?actionContext=ActionContext.getContext();
    Map<String,?Object>?sessionMap=actionContext.getSession();
    sessionMap.put("user",?user);

    2>使用IOC的方式訪問Servlet ApI
    實現****Aware接口,如實現SessionAware接口,重寫setSession方法

    public?void?setSession(Map<String,?Object>?sessionMap)?{
    ????this.sessionMap=sessionMap;
    }
    sessionMap.put("user",user);

    3>耦合方式(ServletActionContext)訪問Servlet API(不推薦使用)

    ServletActionContext.getPageContext();
    ServletActionContext.getRequest();
    ServletActionContext.getResponse();
    ServletActionContext.getServletContext();
    查看全部
  • @Struts2---深入8個方面

    1.訪問Servlet API
    2.Action搜索順序
    3.動態方法調用
    4.指定多個配置文件
    5.默認Action
    6.Struts2后綴
    7.接受參數
    8.處理結果類型

    查看全部
  • web.xml
    任何MVC框架都需要與Web應用整合,這就不得不借用于web.xml文件,只有配置web.xml文件中Servlet才會被應用加載

    Model2:JSP+JavaBean+Servlet

    通常,所有MVC框架都需要Web應用加載一個核心控制器,對于Struts2框架而言,需要加載StrutsPerpareAndExecuteFilter,只負責Web應用加載StrutsPerpareAndExecuteFilter,StrutsPerpareAndExecuteFilter將會加載Struts2框架。
    遇到.acton文件就會攔截并進行處理

    struts.xml
    struts2的核心配置文件,在開發過程中利用率最高。
    該文件主要負責管理Action的映射,以及該Action包含的Result定義等。

    struts.xml中包含的內容:
    1、全局屬性
    2、用戶請求和相應Action之間的對應關系
    3、Action可能會用到的參數和返回結果
    4、各種攔截器的配置

    struts.properties
    struts2框架的全局屬性文件,自動加載
    和strusts.xml在一個路徑
    該文件包含很多key-value鍵值對。
    這個文件可以不要,可以在structs.xml中進行配置,使用constant元素可以替換

    .dtd就是約束struts.xml中可以有哪些標簽不能有哪些標簽
    可以通過 <include file=“”>包含其他文件
    可以把每個功能模塊獨立到一個xml配置文件中,然后用Include節點引用
    <package>
    package提供了將多個Action組織成為一個模塊的方式
    package的名字必須是唯一的,可以在這個包上加一些拓展的包
    <package name="包名" extends="繼承的父類的名稱" abstract設置package的屬性為抽象,抽象的package不能定義action的值, ture或false namespace 包的命名空間>

    <interceptors>為攔截器
    可以為攔截器定義name(名稱)和class(類路徑)
    <interceptor-stack>攔截器棧

    <default-interceptor-ref name="">定義默認的攔截器,每個Action都會自動引用如果

    查看全部
    0 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---struts.properties模板

    #制定默認編碼集,對于請求參數帶有中文的情況應該設置成gbk.gb2312,默認值utf-8
    struts.i18n.encoding=utf-8
    #是否每次HTTP請求到達時,都重新加載國際化資源文件,默認為false
    struts.i18n.reload?=?true
    #但struts.xml改動后,是否重新加載該文件,在開發階段建議設置成true,提高開發效率,默認為false
    struts.configuration.xml.reload=true
    #是否使用struts2的開發模式,可獲得更多報錯信息,便于調試,在開發階段設置為true,默認為false
    struts.devMode?=true
    #設置瀏覽器是否緩存靜態頁面,開發階段設置為false,以獲得服務器最新響應,默認為true
    struts.serve.static.browserCache=true
    #指定后綴為.action形式的請求可以被struts2處理,可配置多個請求后綴,比如.do,struts等,配置多個后綴名用逗號隔開
    struts.action.extendsion=action,do,struts2,
    #配置服務器運行時的端口號,一般情況下該屬性不用修改,如果端口號占用則重新分配端口號,默認為80
    struts.url.http.port?=?8080
    查看全部
    2 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---struts.xml模板

    <?xml?version="1.0"?encoding="UTF-8"??>
    <!DOCTYPE?struts?PUBLIC?
    ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.1//EN"?
    ????"http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    	<include?file=""></include>
    	<package?name=""?extends=""?namespace=""?abstract=""?externalReferenceResolver="">
    		<interceptors>
    			<interceptor?name=""?class=""></interceptor>
    			<interceptor-stack?name="">
    				<interceptor-ref?name=""></interceptor-ref>
    			</interceptor-stack>
    		</interceptors>
    		
    		<default-interceptor-ref?name=""></default-interceptor-ref>
    		
    		<global-results>
    			<result?name="">/xxx.jsp</result>
    		</global-results>
    		
    		?<action?name=""?class=""?method=""?converter="">
    		?	<interceptor-ref?name=""></interceptor-ref>
    		?	
    		?	<result?name=""?type="">/xxx.jsp</result>
    		?	
    		?	<param?name="">值</param>
    		?</action>
    	</package>
    	
    	<constant?name=""?value=""></constant>
    </struts>
    查看全部
    2 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---工作原理圖

    查看全部
  • @Struts2---代碼實現

    1.要導入的包:(共9個)
    commons-fileupload(上傳下載包)
    commons-io(輸入輸出包)
    commons-lang 3-3.2(基礎包)
    commons-logging(日志包)
    freemarker(模板引擎,通過模板生成文本輸出的通用工具)
    structs2-core(核心包)
    xwork-core(一些類基于xwork)
    ognl(表達式)
    javassist-3.11.0.GA.jar(解析java類文件的一個包)

    2.配置web.xml文檔
    web項目在啟動tomcat時第一個啟動的文件就是web.xml
    首先定義過濾器
    <filter>
    <filter-name>struct2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    這里寫完后按住ctrl點擊鼠標左鍵如果可以跳轉則證明正確
    </filter>

    filter的映射
    <filter-mapping>
    <filter-name>struct2</filter-name>
    <url-pattern>/*</url-pattern>
    /*是所有的都需要過濾
    </filter-mapping>

    映射與文件的filter-name應該保持一致

    3.在src中創建struts.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    ??? "http://struts.apache.org/dtds/struts-2.3.dtd">

    <struts>

    </struts>

    4.創建action包
    創建action類讓其繼承ActionSupport
    Struts2中有一個默認的方法不指定方法名的話有一個execute()方法
    之后去配置struts.xml中的action文件

    5.注意點
    編譯環境問題,類名問題,導包問題


    查看全部

舉報

0/150
提交
取消
課程須知
小伙伴們,學習本課程前需要具備Java Web基礎,熟悉JSP和Servlet。
老師告訴你能學到什么?
1、能夠對Struts2框架有更深入的了解 2、能夠獨立編寫Struts2程序

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!