簡單例子
先做一個最簡單的struts的例子在浏覽器中請求一個action然後返回一個字符串到jsp頁面上顯示出來
第一步把struts最低配置的jar包加入的項目中
commonsloggingjar
freemarkerjar
ognljar
strutscorejar
xworkjar
第二步在webxml中加入攔截器配置
<filter>
<filtername>struts</filtername>
<filterclass>orgapachestrutsdispatcherFilterDispatcher</filterclass>
</filter>
<filtermapping>
<filtername>struts</filtername>
<urlpattern>/*</urlpattern>
</filtermapping>
第三步把空的strutsxml配置文件放到項目src下面
<struts>
</struts>
第四部編寫自定義的action類
package test;
import comopensymphonyxworkActionSupport;
public class HelloAction extends ActionSupport {
private String str;
public String hello() {
thisstr = hello!!!;
return success;
}
public String getStr() {
return str;
}
public void setStr(String str) {
thisstr = str;
}
}
第五步編寫strutsxml配置文件
<struts>
<package name=test namespace=/np extends=strutsdefault>
<action name=hello class=testHelloAction method=hello>
<result name=success>/hellojsp</result>
</action>
</package>
</struts>
第六步編寫hellojsp文件
<%@ page language=java contentType=text/html; charset=UTF pageEncoding=UTF%>
<%@ taglib prefix=s uri=/strutstags%>
<!DOCTYPE html PUBLIC //WC//DTD HTML Transitional//EN>
<html>
<head>
<meta httpequiv=ContentType content=text/html; charset=UTF>
<title>Test</title>
</head>
<body>
<h><s:property value=str/></h>
</body>
</html>
第七步啟動tomcat在浏覽器中訪問
hello 是項目名字
np 命名空間對應namespace裡面的字符串
helloaction 其中hello對應action裡面的字符串action表示請求的是一個action
運行機制
)客戶端在浏覽器中輸入一個url地址
)這個url請求通過http協議發送給tomcat
)tomcat根據url找到對應項目裡面的webxml文件
)在webxml裡面會發現有struts的配置
)然後會找到struts對應的strutsxml配置文件
)根據url解析strutsxml配置文件就會找到對應的class
)調用完class返回一個字String根據strutsxml返回到對應的jsp
struts流程
上圖來源於Struts官方站點是Struts 的整體結構
一個請求在Struts框架中的處理大概分為以下幾個步驟
) 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求
) 這個請求經過一系列的過濾器(Filter)
) 接著FilterDispatcher被調用FilterDispatcher詢問ActionMapper來決定這個請是否需要調用某個Action
) 如果ActionMapper決定需要調用某個ActionFilterDispatcher把請求的處理交給ActionProxy
) ActionProxy通過Configuration Manager詢問框架的配置文件找到需要調用的Action類
) ActionProxy創建一個ActionInvocation的實例
) ActionInvocation實例使用命名模式來調用在調用Action的過程前後涉及到相關攔截器(Intercepter)的調用
) 一旦Action執行完畢ActionInvocation負責根據strutsxml中的配置找到對應的返回結果
Struts的核心就是攔截器Strutsxml中所有的package都要extends=strutsdefault同理與所有的Java類都要extends自Object一樣strutsdefaultxml裡面就是要做以上事情
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28861.html