1. 程式人生 > >struts框架

struts框架

throws core ima free -m 之間 共同點 clip cat

軟件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框架