struts框架
軟件151 馬金忠
Struts 2和傳統的MVC框架有些不同,在該框架中的作用的模式,而不是控制器的作用略有不同,雖然有一些重疊。這是Struts的MVC模式的體系結構概述。
上圖描述了Struts2的高層體系結構模型,視圖和控制器。一個Struts2的調度Servlet過濾器和攔截器與控制器實現,該模型實現的動作和視圖的組合的結果類型和結果。值棧和OGNL提供了共同點,其他部件之間的連接和集成。
基於上述數據圖,可以解釋用戶的請求的生命周期在Struts 2如下所示:
下載並且解壓struts之後可以把lib目錄下的一下文件復制到我們的項目WEB-INFlib 目錄. 要做到這一點,你可以簡單地將下降到WEB-INFlib文件夾中的所有下列文件。(下面是最小依賴集)
commons-fileupload-x.y.z.jar
commons-io-x.y.z.jar
commons-lang-x.y.jar
commons-logging-x.y.z.jar
commons-logging-api-x.y.jar
freemarker-x.y.z.jar
javassist-.xy.z.GA
ognl-x.y.z.jar
struts2-core-x.y.z.jar
xwork-core.x.y.z.jar
創建動作類(Action Class):
Action類是Struts 2的應用程序的關鍵,我們實現了大部分的Action類中的業務邏輯。Action類來響應用戶的操作,當用戶點擊一個URL。 Action類中的一個或多個方法被執行,並返回一個字符串結果。基於結果的值,一個特定的JSP頁面的呈現方式。
package
com.tutorialspoint.struts2;
public
class
HelloWorldAction{
private
String name;
public
String execute()
throws
Exception {
return
success;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
}
創建視圖(View)
我們需要一個JSP提交最後的消息,這個頁面會使用在Struts 2框架中預定義的動作時,這將會發生在struts.xml文件中定義的映射。
<%@ page contentType=text/html; charset=UTF-
8
%>
<%@ taglib prefix=s uri=/struts-tags %>
taglib指令告訴Servlet容器中,這個頁面將使用Struts2標簽,這些標簽之前,將通過s。s:property標簽顯示動作類‘name’的屬性值,是調用HelloWorldAction 類的方法getName()。接下來創建一個主頁面:
我們還需要在WebContent文件夾中創建index.jsp頁面文件。該文件將作為初始動作URL,用戶可以直接點擊告訴Struts2框架調用的HelloWorldAction類定義的方法並渲染HelloWorld.jsp視圖。
配置文件
<!--?xml version=
1.0
encoding=UTF-
8
?-->
<struts>
<constant name=
"struts.devMode"
value=
"true"
>
<
package
extends
=
"struts-default"
name=
"helloworld"
>
<result name=
"success"
>/Hello.jsp</result>
</action>
</
package
>
</constant></struts>
下一步是創建一個web.xml文件這是任何請求發送到Struts2的一個切入點。Struts2的應用程序的入口點,將是一個部署描述符(web.xml)中定義的過濾器。
在web.xm文件中,我們定義一個過濾器org.apache.struts2.dispatcher.FilterDispatcher. web.xml文件需要創建WEB-INF文件夾下的WebContent。 Eclipse在創建項目時已經創建了一個web.xml文件。所以,讓我們只需要修改如下:
<!--?xml version=
1.0
encoding=UTF-
8
?-->
<web-app http:=
""
id=
"WebApp_ID"
java.sun.com=
""
javaee=
""
ns=
""
version=
"3.0"
web-app_3_0.xsd=
""
xml=
""
xmlns=
"http://java.sun.com/xml/ns/javaee"
xmlns:web=
"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemalocation=
"http://java.sun.com/xml/ns/javaee"
>
<display-name>Struts
2
</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-
class
>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-
class
>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
這樣我們就會很系統的學習struts框架,很輕松,有很好用,理解了這些,我們在編寫類似這些代碼的時候就很輕松了
struts框架