<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-54  評論-0  文章-2  trackbacks-0
     今天初步學習了一下Struts2,對于Struts2,企業中已應用十分廣泛,由于他是在Struts基礎上發展而來,技術上比struts高,比如struts2對同一個路徑的每個請求分別使用一個獨立Action實例對象,所有使用struts2不用考慮線程安全問題,還有就是修改下配置文件,不用重啟服務器
    1.struts2的建立過程:
    配置過程:
    1.新建web項目
    2.導入struts2類庫. [blank項目中含有最少的jar文件]
    3.配置web.xml
    <filter>[...SrutsPrepareAndExecuteFilter]
    4.寫Action類
    public class HelloWorldAction {
    public String execute(){
    System.out.println("hello world!");
    try {
    ServletActionContext.getResponse().getWriter().printf("hello!");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null ;
    }
    }
    5.創建struts.xml
    ①.struts2默認在類路徑下查找struts.xml文件
    關于struts.xml配置,可以參看struts2-blank-2.1.8.1.war解壓后的配置
    設置環境為開發模式.設置為開發模式,有利于編程和調試,
    <constant name="struts.devMode" value="true" />
    3.讓struts.xml中的Package繼承struts-default.xml中的默認包.
    所有的默認包中的元素配置就引入進來.
    4.配置默認值.
    <action name="HelloWorldAction" class="cn.itcast.struts2.helloworld.HelloWorldAction">
    <result name="success">
    <param name="location">/index.jsp</param>
    </result>
    </action>

    5.strtus2中的action不是單例的,它會為每個請求單獨分配一個action實例,所以可以在action類中聲明實體屬性.
    Struts2的Action是模型層,不是控制層,原因它是需要攜帶業務數據的.
    6.struts2中的攔截器是負責每個獨立的一項任務.例如,參數傳遞,國際化,異常處理,StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它負責攔截由<url-pattern>/*</url-pattern>指定的所有用戶請求,當用戶請求到達時,該Filter會過濾用戶的請求。
    7.在struts2的jsp中輸出數據,借助于struts-tag.tld標簽庫.該庫在[struts-core.jar/META-INF/struts-tag.tld,但是其重要作用還是用于回顯數據

    8.Struts2可以數據的范圍:ActionContext request session application
    ActionContext是數據中心,ValueStack不過是該數據中心中的一個特殊對象.
    在jsp中訪問ActionContext中的數據的話,可以使用OGNL語言.
    9.struts2中包的名字空間搜索原則:

    1.<package name="xxPkg">
    2.<package name="xxPkg" namespace="">
    3.<package name="xxPkg" namespace="/">
    4.<package name="xxPkg" namespace="/HelloWorld">

    1.和2.效果一樣,都是默認的包.
    2.都會自后向前搜索,直到找到為止,"/" 和 "/HelloWorld"唯一不同就是也可以作為搜索目錄.
    3.空包是默認包,如果每個包都沒有找到相應的action的話,就去默認包下去找.
    10.struts2中進行動態方法調用.
    http://localhost:8085/struts2/Hell/HelloWorldAction!toRewView.do
    11.struts2中使用標簽庫
    <s:form action="HelloWorldAction_doReg" [namespace=""]>
    <s:textfield name="name" label="UserName" />
    <s:submit />
    </s:form>
    namespace:如果不寫,會使用當期的名字空間.
    struts給的所有控件標簽,主要目的用于回顯數據.
    12.struts2中進行基本的校驗,需要Validateable和ValidationAware兩個接口的支持,同時還需要
    workflow攔截器的支持.
    13.在struts2中,默認的表達式語言是OGNL,Object Graphic Navigation Language(對象圖導航語言)的縮寫,它是一個開源項目。 Struts 2框架使用OGNL作為默認的表達式語言。相對EL表達式,它提供了平時我們需要的一些功能,如:支持對象方法調用,支持類靜態方法調用和值訪問,操作集合對象。例如():

    訪問值棧中的action的普通屬性: username = <s:property value="username"/>

    由于下午有公司來面試,耽誤了一些時間,老徐說明天再多補一個小時,太敬業了啊,佩服!

    posted on 2010-03-25 16:39 d66380022 閱讀(291) 評論(0)  編輯  收藏
    主站蜘蛛池模板: 免费91最新地址永久入口| 精品国产精品久久一区免费式| a视频在线免费观看| 最近中文字幕高清免费中文字幕mv | 16女性下面无遮挡免费| 国产一区二区三区免费视频| 亚洲国产精品不卡在线电影| 亚洲日韩AV一区二区三区中文| 久久久亚洲精品无码| 亚洲日韩国产一区二区三区| 亚洲最大黄色网址| 亚洲一区中文字幕| 亚洲精品美女网站| 中国国产高清免费av片| xxxxx做受大片在线观看免费| 最好看的中文字幕2019免费| 亚洲精品乱码久久久久久按摩| 日韩在线视频免费| 国产免费区在线观看十分钟| 成人免费视频网站www| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 亚洲国产精品无码久久久| 中文字幕视频免费| 亚洲福利视频网址| 亚洲一区在线视频观看| 最新欧洲大片免费在线| 大地资源二在线观看免费高清| 亚洲一区二区三区高清视频| 在线视频免费观看爽爽爽| 亚洲精品自在线拍| 欧美日韩国产免费一区二区三区| 亚洲自国产拍揄拍| 一道本不卡免费视频| 亚洲 无码 在线 专区| 亚洲一级片免费看| 亚洲国产精品狼友中文久久久 | 国产午夜精品久久久久免费视| 久久亚洲一区二区| 三上悠亚电影全集免费 | 久久精品亚洲日本佐佐木明希| 久久久久亚洲AV成人片|