Struts2框架学习Action命名空间创建方式
? ? ?Struts2框架中Action類(lèi)時(shí)一個(gè)單獨(dú)的javabean對(duì)象,相比struts1來(lái)說(shuō),不需要去繼承任何類(lèi)型或?qū)崿F(xiàn)任何借口,表單數(shù)據(jù)包含在Action中,而Struts1則必須繼承org.apache.struts.action.Action或者其子類(lèi)才行,相比之下,耦合度減小了許多。
對(duì)于struts2來(lái)說(shuō),在struts.xml配置是其核心內(nèi)容,今天主要介紹其命名空間和其三種創(chuàng)建方式。
命名空間namespace
<package name="default" namespace="/" extends="struts-default">
? ? ?namespace在缺省的情況下相當(dāng)于"";
三種創(chuàng)建方式:
方式一:創(chuàng)建一個(gè)POJO類(lèi)
POJO(PlainOrdinary Java Object)簡(jiǎn)單的Java對(duì)象
struts.xml配置
<!-- 使用pojo創(chuàng)建action --><action name="demo1" class="cn.itcast.action.Demo1Action"><result>/success.jsp</result></action>//創(chuàng)建一個(gè)Action,使用pojo類(lèi) public class Demo1Action {public String execute() {return "success";} }
- 優(yōu)點(diǎn):無(wú)耦合
- 缺點(diǎn):所有功能都需要自己實(shí)現(xiàn)
方式二:創(chuàng)建一個(gè)類(lèi),實(shí)現(xiàn)Action接口
Action接口 ?com.opensymphony.xwork2.Action
struts.xml
<!-- 使用Action接口來(lái)實(shí)現(xiàn)action創(chuàng)建 --><action name="demo2" class="cn.itcast.action.Demo2Action"><result>/success.jsp</result></action>Action:
//繼承Action public class Demo2Action implements Action {public String execute() throws Exception { // SUCCESS代表數(shù)據(jù)處理成功return SUCCESS;}}
優(yōu)點(diǎn):在Action接口中定義了請(qǐng)求處理方法execute,還定義了五個(gè)結(jié)果視圖
- ? ? ?public static final String SUCCESS ="success";? //數(shù)據(jù)處理成功(成功頁(yè)面)
- ? ? ?public static final String NONE ="none";? //頁(yè)面不跳轉(zhuǎn)? return null;效果一樣
- ? ? ?public static final String ERROR ="error";? //數(shù)據(jù)處理發(fā)送錯(cuò)誤 (錯(cuò)誤頁(yè)面)
- ? ? ?public static final String INPUT ="input"; //用戶(hù)輸入數(shù)據(jù)有誤,通常用于表單數(shù)據(jù)校驗(yàn)(輸入頁(yè)面)
- ? ? ?public static final String LOGIN ="login"; //主要權(quán)限認(rèn)證 (登陸頁(yè)面)
缺點(diǎn):具體的功能還需要自己手動(dòng)實(shí)現(xiàn).
方式三:創(chuàng)建一個(gè)類(lèi),繼承ActionSupport
ActionSupport ? ?com.opensymphony.xwork2.ActionSupport
struts.xml
<!-- 使用繼承Actionsupport來(lái)實(shí)現(xiàn)action創(chuàng)建 --><action name="demo3" class="cn.itcast.action.Demo3Action"method="add"><result>/success.jsp</result></action>Action
//繼承于ActionSupport public class Demo3Action extends ActionSupport {public String add() throws Exception {System.out.println("add method");return SUCCESS;}}
- 優(yōu)點(diǎn):不僅具有了Action接口中提供的功能(ActionSupport類(lèi)實(shí)現(xiàn)了Action接口),還具有國(guó)際化參數(shù)校驗(yàn)錯(cuò)誤信息設(shè)置功能
- 缺點(diǎn):耦合度高
? ? ?介于優(yōu)缺點(diǎn)的比較,在開(kāi)發(fā)的過(guò)程中我們還是使用第三種比較多,縱然耦合度高,但是由于不用著急動(dòng)手去實(shí)現(xiàn),我們完全可以通過(guò)其他的方法去將耦合度降低。
? ? ?三種方式都可以達(dá)到相同的目的,如果成功跳轉(zhuǎn)則可將其設(shè)置的jsp頁(yè)面顯示出來(lái)。再此省略不計(jì)
轉(zhuǎn)載于:https://www.cnblogs.com/huohuoL/p/10545503.html
總結(jié)
以上是生活随笔為你收集整理的Struts2框架学习Action命名空间创建方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (转)个例子让你了解Java反射机制
- 下一篇: SQL Server 求结果