国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Struts2 最簡(jiǎn)教程

實(shí)驗(yàn)軟件下載

1.         下載struts2.1.6 http://struts.apache.org/download.cgi#struts217
(
選擇下載full distribution)

2.         下載myeclipse,http://www.myeclipseide.com

3.         下載tomcat,http://tomcat.apache.org

4.         下載xworkhttp://www.opensymphony.com/xwork (要注意的是下載與struts2.1.6的對(duì)應(yīng)版本,即2.1.2)

安裝與設(shè)置

1.         解壓struts2.1.6,假設(shè)解壓后位于d:\struts2目錄

2.         安裝MyEclipse,任何版本都可以

3.         假設(shè)你已經(jīng)安裝好jdktomcat了,如d:\tomcat

HelloWorld

1.         建立項(xiàng)目

a)         打開(kāi)eclipse

b)         新建項(xiàng)目

c)         選擇myeclipse-java enterprise projects-web project

d)         項(xiàng)目名稱:struts2_0100_introduction

e)         選擇java ee 5.0

2.         設(shè)定server

a)         window – preferences – myeclipse – servers – tomcat – 6.x

b)         選擇tomcat home directory

c)         選擇enable

d)         finish

3.         設(shè)定jdk環(huán)境

a)         window – preferences – java – installed jres

b)         如果沒(méi)有對(duì)應(yīng)的JDK(不是JRE),選擇add

c)         選擇standard VM -> next

d)         選擇JDK對(duì)應(yīng)的Directory

e)         將剛剛設(shè)定的JDK設(shè)為默認(rèn)

4.         建立第一個(gè)struts2.1的程序

a)         找到struts目錄下對(duì)應(yīng)的apps目錄

b)         解壓struts2-blank-2.1.6.war

c)         Copy對(duì)應(yīng)的libjar文件,需要除junitspring-test之外的所有文件,其中commons-iojar包會(huì)在文件上傳和下載時(shí)需要,其他為必須

d)         Copy對(duì)應(yīng)的struts.xmlsrc目錄,在package explorer視圖進(jìn)行操作

e)         注釋掉struts.xml的多余內(nèi)容

f)          建立HelloStruts2_1.jsp文件

g)         *修改jsp文件的默認(rèn)編碼屬性window-preferences-web-jspfiles-設(shè)為Chinese,National Standard

h)         struts.xml中照原配置進(jìn)行對(duì)應(yīng)的配置

i)           修改對(duì)應(yīng)的web.xml,建立struts2filter(參考struts自帶的項(xiàng)目)

5.         運(yùn)行項(xiàng)目

a)         可以首先部署到tomcat上項(xiàng)目

b)         也可以項(xiàng)目右鍵debug as – myeclipse server app,選擇剛剛建立好的server

6.         其他

a)         學(xué)習(xí)建立strutsdev-mode,好處在于我們修改了配置文件的時(shí)候能夠自動(dòng)熱替換

b)         建立jar文件對(duì)應(yīng)的源碼D:/share/tools/struts-2.1.6/src/core/src/main/java,以及xwork對(duì)應(yīng)的源碼,以及對(duì)應(yīng)的javadoc location,(更好的方式是建立自己的user-library

c)         瀏覽struts的目錄

d)         認(rèn)識(shí)eclipse jee的項(xiàng)目部署目錄,認(rèn)識(shí)如何修改webappcontext-root,項(xiàng)目copy改名后可能會(huì)出現(xiàn)的問(wèn)題

e)         package explorer – 建立jar的源文件和目標(biāo)關(guān)聯(lián),navigator – 觀察所有的內(nèi)容

f)          認(rèn)識(shí)Action的后綴名,在struts2默認(rèn)中,帶不帶action都可以

 

常見(jiàn)問(wèn)題:

1.         struts.xml不自動(dòng)提示

a)         window – preferences – 搜索 catalog – add

b)         選擇key typeURI

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

d)         location: 對(duì)應(yīng)的dtd文件,位于struts-core包中,解壓開(kāi),指定相應(yīng)位置,如:D:\share\0750_Struts2.1.6\soft\struts-2.1.6\lib\struts2-core-2.1.6\struts-2.0.dtd

2.         導(dǎo)入示例項(xiàng)目

a)         注意JDK的版本,應(yīng)該是JDK6,否則會(huì)出class version的問(wèn)題

b)         如果總是項(xiàng)目出問(wèn)題,可以重建項(xiàng)目,單獨(dú)拷文件

c)         還有一種情況是項(xiàng)目右鍵,properties – java – compiler 選擇6.0

d)         另外,在tomcat配置中也要使用jdk6

3.         devMode設(shè)為true就會(huì)出問(wèn)題空指針問(wèn)題

a)         tomcat路徑帶了空格

4.         在使用ActionContext.getContext().get(“request”)取不到對(duì)象,為null

a)         web.xml不要使用2.0filter,用新的

5.         action的試驗(yàn)中,遇到一個(gè)奇怪的bug

a)         default-action-ref指定一個(gè)action

b)         *_*映射

c)         在地址欄中訪問(wèn)一個(gè)不存在的action,如adfsdfsfs

d)         結(jié)果居然會(huì)映射到*_*

e)         如果換成*__*就沒(méi)問(wèn)題了

f)          靠,只能認(rèn)為是bug

g)         下次用*-*,不用*_*

學(xué)習(xí)方法說(shuō)明

1.         先閱讀老師的代碼

2.         再建立自己的項(xiàng)目進(jìn)行動(dòng)手學(xué)習(xí)

Action

1.         實(shí)現(xiàn)一個(gè)Action的最常用方式:從ActionSupport繼承

2.         DMI動(dòng)態(tài)方法調(diào)用 !

3.         通配符配置 * {1} {2} …

a)         *_*

4.         接收參數(shù)的方法(一般用屬性或者DomainModel來(lái)接收)

5.         簡(jiǎn)單參數(shù)驗(yàn)證addFieldError

a)         一般不使用Struts2UI標(biāo)簽

6.         訪問(wèn)Web元素

a)         Map類(lèi)型

                         i.              IoC

                       ii.              依賴Struts2

b)         原始類(lèi)型

                         i.              IoC

                       ii.              依賴Struts2

7.         包含文件配置

8.         默認(rèn)action處理

Result

1.         常用四種類(lèi)型:

a)         dispatcher(默認(rèn))

b)         redirect

c)         chain

d)         redirectAction

2.         全局結(jié)果集

a)         global-results | extends

3.         動(dòng)態(tài)結(jié)果(了解)

a)         action中保存一個(gè)屬性,存儲(chǔ)具體的結(jié)果location

4.         傳遞參數(shù)

a)         客戶端跳轉(zhuǎn)才需要傳遞

b)         ${}表達(dá)式(不是EL

OGNL

1.         Object Graph Navigation Language

2.         想初始化domain model,可以自己new,也可以傳參數(shù)值,但這時(shí)候需要保持參數(shù)為空的構(gòu)造方法

3.         其他參考ognl.jsp

4.         什么時(shí)候在stack中會(huì)有兩個(gè)Action?chain

Struts-Tags

1.         通用標(biāo)簽:

a)         property

b)         set

                         i.              默認(rèn)為action scope,會(huì)將值放入requestActionContext

                       ii.              page、request、session、application

c)         bean

d)         include(對(duì)中文文件支持有問(wèn)題,不建議使用,如需包含,改用jsp包含)

e)         param

f)          debug

2.         控制標(biāo)簽

a)         if elseif else

b)         iterator

                         i.              collections map enumeration iterator array

c)         subset

3.         UI標(biāo)簽

a)         theme

                         i.              simple xhtml(默認(rèn)) css_xhtml ajax

4.         AJAX標(biāo)簽

a)         補(bǔ)充

5.         $ # %的區(qū)別

a)         $用于i18nstruts配置文件

b)         #取得ActionContext的值

c)         %將原本的文本屬性解析為ognl,對(duì)于本來(lái)就是ognl的屬性不起作用

                         i.              參考<s:property <s:include

定義自己的theme

1.         css(覆蓋struts2原來(lái)的css

2.         覆蓋單個(gè)文件

3.         定義自己的theme

4.         實(shí)戰(zhàn):

a)         把所有主題定義為simple

b)         fielderror特殊處理

c)         自己控制其他標(biāo)簽的展現(xiàn)

作業(yè)

1.         doc文檔:struts-tags

2.         設(shè)計(jì)約定(編碼規(guī)定)

a)         原則:簡(jiǎn)單就是美

b)         庫(kù)名:項(xiàng)目名

c)         表的命名:_Model

d)         字段:保持和屬性名一致(盡量不要起名和數(shù)據(jù)庫(kù)命名沖突)

e)         用層來(lái)劃分包com.bjsxt.bbs.action model(bean) service dto(vo)

f)          Action XXXXAction

g)         *-*

h)         /

i)           /admin

j)           package “action” adminAction

項(xiàng)目開(kāi)發(fā)順序-BBS2009的名義

1.         建立界面原型

2.         建立Struts.xml

a)         確定namespace

b)         確定package

c)         確定Action的名稱,空的方法

d)         確定Result

e)         將界面原型頁(yè)面進(jìn)行修改,匹配現(xiàn)有設(shè)置

f)          測(cè)試

g)         做好規(guī)劃?。。。。?/span>

3.         建立數(shù)據(jù)庫(kù)(或者實(shí)體類(lèi))

4.         建立Model

5.         建立Service層(后面講了Hibernate后再完善)

a)         此時(shí)可以使用JUnit進(jìn)行單元測(cè)試了

6.         著手開(kāi)發(fā)

聲明式異常處理

1.         Actoin中進(jìn)行異常映射

2.         package中進(jìn)行全局異常映射

3.         使用繼承共用異常映射

4.         Struts2中異常處理由攔截器實(shí)現(xiàn)(觀察struts-default.xml

a)         實(shí)際上Struts2的大多數(shù)功能都由攔截器實(shí)現(xiàn)

I18N

1.         I18N原理

a)         ResourceBundleLocale的概念

b)         資源文件

c)         native2ascii

2.         Struts的資源文件

a)         Action – Package – App級(jí)

b)         一般只用APP

                         i.              struts.xml custom.i18n

c)         PropertiesEditor插件

                         i.              解壓

                       ii.              features plugin 覆蓋到myeclipse中的eclipse目錄里

d)         動(dòng)態(tài)語(yǔ)言切換

                         i.              request_locale=en_US

Struts攔截器以及源碼解析

1.         Struts架構(gòu)圖

a)         見(jiàn)文檔

2.         Struts執(zhí)行過(guò)程分析

3.         Interceptor攔截器過(guò)程模擬

4.         定義自己的攔截器

a)         acegi – spring security

5.         使用token攔截器控制重復(fù)提交(很少用)

6.         類(lèi)型轉(zhuǎn)換

a)         默認(rèn)轉(zhuǎn)換

                         i.              日期處理

b)         寫(xiě)自己的轉(zhuǎn)換器:

public class MyPointConverter extends DefaultTypeConverter{

 

    @Override

    public Object convertValue(Object value, Class toType) {

       if(toType == Point.class) {

           Point p = new Point();

           String[] strs = (String[])value;

           String[] xy = strs[0].split(",");

           p.x = Integer.parseInt(xy[0]);

           p.y = Integer.parseInt(xy[1]);

           return p;

       }

       if(toType == String.class) {

           return value.toString();

       }

       return super.convertValue(value, toType);

    }

 

}

public class MyPointConverter extends StrutsTypeConverter{

 

 

 

    @Override

    public Object convertFromString(Map context, String[] values, Class toClass) {

      

           Point p = new Point();

           String[] strs = (String[])values;

           String[] xy = strs[0].split(",");

           p.x = Integer.parseInt(xy[0]);

           p.y = Integer.parseInt(xy[1]);

           return p;

      

      

    }

 

    @Override

    public String convertToString(Map context, Object o) {

       // TODO Auto-generated method stub

       return o.toString();

    }

 

}

 

c)   三種注冊(cè)方式:

        i.      局部:XXXAction-conversion.properties

1.   p(屬性名稱) =  converter

       ii.      全局:xwork-conversion.properties

1.   com.xxx.XXX(類(lèi)名)= converter

     iii.      Annotation

d)   如果遇到非常麻煩的映射轉(zhuǎn)換

        i.      request.setAttribute();

       ii.      session

補(bǔ)充視頻中講解的內(nèi)容

1.         Lambda表達(dá)式

2.         驗(yàn)證框架

3.         UI標(biāo)簽

4.         類(lèi)型轉(zhuǎn)換中的異常處理

5.         上傳與下載文件

6.         Struts2注解

Struts2總結(jié)

1.         Action

a)         namespace(掌握)

b)         path(掌握)

c)         DMI(掌握)

d)         wildcard(掌握)

e)         接收參數(shù)(掌握前兩種)

f)          訪問(wèn)request等(掌握Map IOC方式)

g)         簡(jiǎn)單數(shù)據(jù)驗(yàn)證(掌握addFieldError<s:fieldError

2.         Result

a)         結(jié)果類(lèi)型(掌握四種,重點(diǎn)兩種)

b)         全局結(jié)果(掌握)

c)         動(dòng)態(tài)結(jié)果(了解)

3.         OGNL表達(dá)式(精通)

a)         # % $

4.         Struts標(biāo)簽

a)         掌握常用的

5.         聲明式異常處理(了解)

6.         I18N(了解)

7.         CRUD的過(guò)程(最重要是設(shè)計(jì)與規(guī)劃)(精通)

8.         Interceptor的原理(掌握)

9.         類(lèi)型轉(zhuǎn)換(掌握默認(rèn),了解自定義)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Struts2框架學(xué)習(xí)之三:result返回結(jié)果
java語(yǔ)言中有多少種框架?
朋友要從.NET轉(zhuǎn)JAVA開(kāi)發(fā)了,問(wèn)我入口
一定要選擇單一技術(shù)嗎?
基于mvc模式的struts框架概述
struts2的優(yōu)點(diǎn)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服