strust2框架來歷簡介:
WebWork是由OpenSymphony組織開發(fā)的,致力于組件化和代碼重用的J2EE Web框架旺矾。(同時也是一個成熟的基于Web的MVC框架)亚亲。
MVC:Model View Controller, model是模型,view是視圖,controller是控制器,是一種框架模式.
隨著WebWork框架的發(fā)展,衍生出了strust2框架,因此strust2框架是WebWork的升級,而不是一個全新的框架,因此穩(wěn)點性、性能等方面都有很好的保證,而且也同時吸收了struts1框架和WebWork倆者的優(yōu)點.所以strust2框架也是一個基于Web的MVC框架.契耿。
注意:strust2框架并不是struts1框架的延續(xù)或者升級,倆者有著很大的不同。
struts2框架的搭建
1、 獲取發(fā)布包 :struts2官網(wǎng) apache github 百度刻炒,(如若需要這里有我自己搭框架時的struts2的框架包http://pan.baidu.com/s/1boIZIY7)
2皂贩、導包:獲取到jar包之后導入到自己的項目中栖榨,注意導入的jar包放在自己項目的WebContent\WEB-INF\lib\下面。
-
3明刷、配置web.xml:在web.xml文件中配置struts2框架的過濾器.
這個過濾器的作用:攔截struts2框架中的action.注意:如果不配置這個filter,struts2框架就不能夠工作婴栽。<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>
-
4、配置struts2核心配置文件 struts.xml:在struts.xml配置action的目的和作用:通知 struts2框架我們寫的這個類是一個Action,將來struts2框架中要給這個類創(chuàng)建對象,調(diào)用方法以及這個Action加入更多豐富的功能辈末。
<?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> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> </package> <!-- <include file="example.xml"/> --> </struts>
注意如若在struts.xml里面沒有默認提示愚争,則需要自己手動的去給struts.xml文件添加提示,步驟為:
第一步:解壓struts2-core-2.3.24.1.jar包挤聘,并在文件里面找到struts-2.3.dtd文件轰枝,并放在你的項目下的dtd文件中。
第二步:選擇eclipse里面Window下面的preference组去,在搜索框里輸入xml,在選擇xml catalog鞍陨,
然后點擊add,Location里選擇你的dtd文件在項目中的位置,keytype選擇URI从隆,然后key為 http://struts.apache.org/dtds/struts-2.3.dtd诚撵,最后點擊ok即可。
struts2項目開發(fā)
-
1广料、編寫Action類:在創(chuàng)建一個bean類之后砾脑,我們再創(chuàng)建一個與之對應的Action類,(如我們創(chuàng)建了一個名為User的bean類艾杏,再創(chuàng)建一個名為UserAction的Action類)韧衣,同時注意我們的action類名編寫是有一定的規(guī)律的,一般為相對應的bean類加上Action借尾的。
一般Action類里面有大量返回值為String類型的方法畅铭,如:
public String toLogin(){
System.out.println("跳轉(zhuǎn)到登陸頁面");
return "login";
}
-
2氏淑、 配置struts.xml:沒創(chuàng)建了一個action類或者添加了返回值為String的方法之后都要去struts.xml文件里面去進行相應配置。
<package name="default" namespace="/" extends="struts-default">
<action name="user_*" class="com.wjy.week3.web.action.UserAction" method="{1}"> <result name="login">/WEB-INF/jsp/login.jsp</result> </action> </package>
第一行package中的name屬性意思為:表示給當前package起一個名字為default硕噩,并且唯一標識這個package假残。
namespace屬性意思為:表示當前package的命名空間為/,將來這個package里面的所有的action在被訪問的時候,路徑里面都要加上這個命名空間。
extends屬性意思為:繼承的包名為那個炉擅,一般默認為繼承struts2里面核心默認包struts-default辉懒。
action里面的name標簽:表示為將來在游覽器要訪問這個Action類就要以"user_"開頭的名字去匹配。
class:該Action類在你項目中的位置谍失。
method:調(diào)用方法匹配的字段眶俩,如若name="user__";則method="{2}";
result:返回的結果為什么,則想某個頁面跳轉(zhuǎn)快鱼。 -
3颠印、測試:當我們把項目部署到服務器并啟動服務器的時候,我們就可以在瀏覽器中輸入"http://localhost:8888/week3/user_toLogin.action"的時候就可以訪問到我們要跳轉(zhuǎn)的頁面了抹竹。
注意:struts2框架是默認過濾以".action"結尾的url的线罕,所以我們使用struts2框架訪問時都要以.action結尾,否則是訪問不到我們所需要的資源的窃判。