A. struts2 如何升級
我前幾天剛做的2.3.1.2升級到2.3.15.1GA
如果你的應用沒有修改過struts2的源碼,那升級很簡單
增加3個jar
struts2一個,xwork一個,把原版本的替換掉,另外增加一個common-lang3的包
其他什麼都不用動。
web.xml struts.xml沒有變化,只是15版本里增加了一些debug信息,如果你不想看,就把struts.xml里devmode改成false
B. 怎樣在eclipse中添加struts框架
1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<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>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象
4.3 讓action實現RequestAware,SessionAware,ApplicationAware介面,並實現裡面的方法
5.四種轉向
5.1 action轉發到頁面(默認)
5.2 action重定向到頁面 <result type="redirect">
5.3 action轉發到action <result type="chain">
<param name="actionName">login</param>
<param name="nameSpace">/login</param>
<param name="method">login</param>
</result>
5.4 action重定向到action <result type="redirectAction">login</result>
C. java.lang.ClassNotFoundException: javassist.ClassPool
「你使用struts-2.2.1嗎?如果是,需要引入javassist-3.7.ga.jar,而這個在struts-2.2.1\lib下是沒有的,需要在struts-2.2.1\apps\struts2-blank-2.2.1.war下的lib中找。」
就是這樣,灰常標準的解答,喵~