Struts2框架的使用步驟
Struts2是基于MVC 的一個非常優秀的框架。Struts2的使用非常簡單,這里舉出一個簡單的Struts2框架的使用步驟。
一、下載Jar包
從Apache網站下載Struts2的Jar包。
二、部署Struts.xml和Web.xml
打開壓縮包中的Blank實例,copy其中的Struts.xml到項目的src目錄下,copy其中的Web.xml中的filter部分到項目中的web.cml中。
三、復制Jar包
copy blank實例中lib目錄中的所有Jar包到項目中的lib目錄下。
四、寫Action類
一般來說Action就是MVC中的Controller,Action一般要繼承ActionSupport類
在里面寫各種處理的方法即可。
五、配置Struts.xml
extends一般默認的是struts-default
action標簽中的那么就是瀏覽器請求的地址
class屬性是指處理請求的Action是哪一個,包名+Action類名
method屬性是指Action中處理請求的方法名
result就是轉向返回的頁面
name屬性是指如果方法返回的字符串匹配就返回result中的頁面。
六、通配符
使用通配符的方式使得action的配置更簡潔
這里action的name屬性的值可以有*號作為匹配的標志。method屬性的{1}代表的是*的內容 。
譬如瀏覽器請求的是studentDelete那么method的值就是Delete,就會交給Action中的Delete方法處理。
七、Action接收參數
Action接收頁面的參數非常簡單。
只要在Action中聲明的屬性,并且寫了set,get方法,那么前臺的name和屬性名一樣,Struts就會自動調用set方法把值傳給相應的屬性。
如果Action中聲明的屬性是一個類對象,只要寫了set,get方法,那么前臺的name為對象名.對象屬性。對象就能獲得該屬性值。
前端頁面
<form action="addStudent" method="get"> <input type="text" name="name"> <input type="text" name="age"> <input type="text" name="stu.name"> <input type="text" name="stu.age"> <input type="submit"> </form>
八、result的type類型
result有個type標簽,其中最常用的兩個是dispatcher和redirect。
如果不寫type的話,默認是dispatcher
區別:dispatcher是服務器跳轉,客戶端的地址欄中地址不會變的,request和session在跳轉的頁面保持不變。其實是整個ActionContext都沒有改變。
redirect可以認為是客戶端跳轉,就是服務器告訴客戶端重新進入新的地址,客戶端的地址欄中的地址發生了改變,request和session改變了。
九、OGNL表達式
前端也需要從action中取得數值,可以通過ognl表達式的方式取到屬性的值,對象的屬性,session、request、application中的map對,
有兩種寫法:1.使用struts2中的標簽,首先在jsp中引入struts2標簽 <%@taglib uri="/struts-tags" prefix="s"%>,然后使用標簽<s:property value="stu.name" />這樣就能在jsp中取出struts中的屬性
2.使用ognl表達式${stu.teacher.tname } 可以取出stu對象的teacher對象的tname屬性。
利用ognl取得session,request,application中的屬性或者對象的屬性。
session
<s:property value="#session.stu.name">
application
<s:property value="#application.name"/>
request
<s:property value="#request['age']" />
list的某個元素
<s:property value="list[0].name" />
map的某個元素
<s:property value="map.cat">