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

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

Struts2入門

  • MVC。。。。。


    查看全部
    0 采集 收起 來源:MVC模式簡介

    2019-05-24

  • 處理結果類型——type屬性(result標簽的屬性)

    type的默認值為dispatcher,這個類型支持JSP視圖技術(跳轉到相應JSP)。

    struts2支持多種視圖技術,例如JSP、Valocity(模板引擎)、FreeMarker(模板引擎)等。

    struts2-core核心包:struts-default.xml有個包聲明了返回的結果類型,

    chain:鏈式結果類型,將action和另外一個action鏈接起來。

    dispatcher:相當與forward服務器內部轉發。

    redirect和redirectAction:相當于請求重定向,重要問題——>重定向會丟失請求參數。

    plainText:顯示某一界面的原始代碼。

    stream:一般用于文件的下載。




    查看全部
  • 處理結果類型(處理結果是通過在struts.xml使用<result/>標簽配置結果)

    根據位置的不同,分為兩種結果:

    局部結果:將<result>標簽作為<action/>元素的子元素來處理。

    全局結果:將<result/>作為<global-result/>元素的子元素的來處理,<global-result/>相當于公共的處理結果集。

    例如:<package name="">

    <global-results>

    ? ? ? <result name="">..</result>

    ? ? ? <result ?name="">..</result>

    <global-results>

    </package>

    <result>標簽的子元素<param name="loaction" parse="">resource</param>:

    name屬性的location:定義了該視圖對應的實際視圖資源。

    parse屬性:是否可以在實際視圖名字中使用OGNL表達式,struts默認是true。

    OGNL:Object-Graph ?Navigation ?Language,很強大的表達式語言。

    ${#request.path獲取值},前提是已經對request存入值。(可以在struts.xml中使用,也可以在JSP中使用。(實際項目中不是很常用)


    查看全部
  • 處理結果類型

    struts2處理流程

    用戶請求(前提在web.xml中配置攔截,通過路徑)——>Struts框架(通過struts.xml配置)——>控制器Action(返回string類型邏輯視圖字符串)——>Struts框架(通過result標簽)——>視圖資源。

    Struts1返回結果類型:ActionForward。

    Struts2返回結果類型:String(提供代碼復用性,有利于框架分離)。

    result標簽帶/和不帶/的區別

    ?帶/表示項目的上下文路徑。

    不帶/表示執行action的namespace指定的路徑。

    處理結果類型(com.opensymphony.xwork2.Action)

    SUCCESS:Action正確的執行返回,返回相應試圖,success是name屬性的默認值。

    NONE:表示Action正確的執行完成,但并不返回任何視圖。

    ERROR:表示Action執行失敗,返回到錯誤處理視圖。

    LOGIN:Action因為用戶沒有登陸的原因沒有正確執行,將返回該登陸視圖,要求用戶進行登陸驗證。

    INPUT:Action的執行,需要從前端界面獲取參數,一般在應用中,會對這些參數進行驗證,如果驗證沒有通過,將自動返回到該視圖。


    查看全部
  • 處理結果類型(com.opensymphony.xwork2.Action)

    INPUT:Action的執行,需要從前端界面獲取參數,一般在應用中,會對這些參數進行驗證,如果驗證沒有通過,將自動返回到該視圖。

    自動跳轉到input界面方式:

    1、傳入的參數類型轉換錯誤,自動跳轉INPUT界面(int——>String)

    舉例:前端輸入的數據被賦值給實體類時類型不一致。

    ?2、校驗時,調用的this.addFieldError(fieldName,errorMessage)它是添加表單的錯誤,這里面有值,如果被執行,代表校驗不通過,也會自動跳轉INPUT界。

    如果不想手動返回INPUT,則要把代碼寫在validate()方法里。

    user.getUsername()==null和"".equals(user.getUsername())這兩個條件判斷的區別?

    因為未經第一個判斷直接進行第二個判斷,當用戶名為null時會發生空指針異常

    第一個判斷用戶名是否為null(空)
    第二個判斷用戶名是否為""(空字符串)

    ""并不等于null


    查看全部
  • ServletAPI:HttpServletRequest、HttpServletResponse,和ServeltContext對應JSP內置對象為Request、Response、Application(Servlet可以直接調用HttpServletRequest和HttpServletResponse,因為doGet、doPost方法)。

    Struts:Struts不提供ServletAPI耦合,Struts的Action的execute方法不存在任何參數。

    Struts提供的三種訪問ServeltAPI方式:

    方式一:ActionContext(上下文類,通過它可以獲得servletAPI ,所有的對象都是以Map進行存儲的)。

    方式二:實現***Aware接口。

    方式三:ServletActionContext(與方式一相似)。

    查看全部
  • 動態方法調用:解決一個Action對應多個請求,以免Action太多。

    方法一:指定method屬性。

    編寫多個action標簽,編寫多個name和method屬性。

    方法二:感嘆號方式。(官方不推薦

    步驟1:開啟常量值——<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

    步驟二:<action>標簽里不寫method屬性,訪問方式——http://localhost:8080/項目名/action名+!+方法名.action

    方法三:通配符方式。(官方推薦使用


    查看全部
    • 導入包

    • web.xml添加

    <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>*.action</url-pattern>
    ??</filter-mapping>
    • .src下創建struts.xml

    <struts>
    ????<package?name="default"?namespace="/"?extends="struts-default">
    ????????<action?name="helloworld"?class="com.action.HelloWorldAction">
    ????????<result>/result.jsp</result>
    ????????</action>
    ????</package>
    </struts>
    • 創建action類


    public?class?HelloWorldAction?extends?ActionSupport?{
    ????@Override
    ????public?String?execute()?throws?Exception?{
    ????????System.out.println("HelloWorldAction");
    ????????return?SUCCESS;
    ????}
    }


    查看全部
  • Struts2動態方法調用

    ? 1. 通過method 指定方法

    ? 2. 使用!? 例如: http:localhost:8080/Struts/helloworld!add.action

    ???? 必須設置<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

    ?3.使用通配符 * (推薦使用)

    ?? 例如:<action name="helloworld_*_*" method="{1}" class="xxx">

    ????????? <result name="{1}">{1}.jsp</result>

    ??? </action>

    查看全部
  • MVC模式

    查看全部
    0 采集 收起 來源:MVC模式簡介

    2019-03-19

  • struts.xml里標簽package里元素必須按照一定的順序排列:

    result-types
    interceptors
    default-interceptor-ref
    default-action-ref
    default-class-ref
    global-results
    global-exception-mappings
    action*(就是所有的action放到最后)??

    查看全部
  • struts2.5 為了增加安全性,在 struts.xml 添加了這么個屬性:<global-allowed-methods>regex:.*</global-allowed-methods>

    <package name="default" namespace="/" extends="struts-default">
    ?? <global-allowed-methods>regex:.*</global-allowed-methods>
    ?<action name="helloworld" class="com.imooc.action.HelloWorldAction">
    ????? <result>/result.jsp</result>
    ????? <result name="add">/add.jsp</result>
    ????? <result name="update">/update.jsp</result>
    ?</action>


    查看全部
  • 版本:struts-2.5.16
    1.代碼:<!DOCTYPE struts PUBLIC
    ? ?"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    ? ?"http://struts.apache.org/dtds/struts-2.5.dtd">
    2.路徑調整了:web.xml包路徑
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    3.多導個log4j個jar包

    查看全部
  • 第三步里 的request 是實現了 ServletRequestAware里的setServletRequest方法

    具體如下

    @Override
    public?void?setServletRequest(HttpServletRequest?arg0)?{
    //?TODO?Auto-generated?method?stub
    request?=?arg0;
    }


    查看全部
  • struts2工作原理

    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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