struts2萬用字元及Action開發的三種方式
一,萬用字元與動態方法呼叫
1)準備一個UserAction.java,這個Action中有兩個方法login()和register()
2)在struts.xml中進行配置package com.bighuan.a_config; import com.opensymphony.xwork2.ActionSupport; /** * @author bighuan */ public class UserAction extends ActionSupport { public String login(){ System.out.println("UserAction.login()"); return "login"; } public String register(){ System.out.println("UserAction.register()"); return "register"; } }
3)問題:訪問UserAction.java中的login或者register,訪問成功分別跳轉到login.jsp、register.jsp.但是,如果UserAction.java中有很多個業務方法,照這樣下去,豈不是要配置很多個action?答案顯然不是.可以通過萬用字元來解決這種問題.<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="config" namespace="/user" extends="struts-default" abstract="false"> <action name="login" class="com.bighuan.a_config.UserAction" method="login"> <result name="success">/login.jsp</result> </action> <action name="register" class="com.bighuan.a_config.UserAction" method="register"> <result name="success">/register.jsp</result> </action> </package> <!-- Add packages here --> </struts>
<!-- 使用萬用字元優化上面的步驟 --> <action name="user_*" class="com.bighuan.a_config.UserAction" method="{1}"> <result name="{1}">/{1}.jsp</result> </action>
使用萬用字元訪問的方式為:http://localhost:8080/struts2/user_login(struts2是web專案名,user_login表示訪問UserAction中的login方法).總之就是注意方法、返回值、jsp月面命名即可,然後通過萬用字元匹配即可。
二,Action開發的三種方式
方式一:繼承ActionSupport類,如果使用了資料校驗功能,則必須繼承ActionSupport。上面那個Action類就是繼承了ActionSupport類。
方式二:實現Action介面,實現execute()方法/
package com.bighuan.a_config;
import com.opensymphony.xwork2.Action;
/**
* Action開發方式2:實現Action介面
* @author bighuan
*
*/
public class UserAction2 implements Action {
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return null;
}
}
方式三:既不繼承ActionSupport也不實現Action介面.(ActionSupport實現了Action介面)package com.bighuan.a_config;
/**
* Action開發方式3:既不繼承ActionSupport也不實現Action介面
* @author bighuan
*
*/
public class UserAction3 {
private String userName;
public void setUserName(String userName) {
this.userName = userName;
}
public String login(){
System.out.println("UserAction3.login()"+":"+userName);
return "success";
}
}
不管是哪種方式,都能夠進行資料的自動封裝.使用者訪問Action,建立Action物件;建立Action物件後並不會馬上執行action的業務處理方法,而是執行預設的18個攔截器(如果自己沒修改的話),而預設的攔截器中就有一個引數攔截器,它會進行資料的自動封裝,然後再執行業務邏輯方法.
相關推薦
struts2萬用字元及Action開發的三種方式
一,萬用字元與動態方法呼叫 1)準備一個UserAction.java,這個Action中有兩個方法login()和register() package com.bighuan.a_config; import com.opensymphony.xwork2.Action
【Struts2學習筆記】struts2.5使用萬用字元配置action跳轉
寫在前面:其實在一年前,還沒有開始寫部落格的時候就已經學過struts2了,只是當時太蠢,無法理解MVC以及struts2的一些“人性化”的設定,過了一年再反過來看struts2就很明白了。只是在struts2.5裡面多了一個機制導致無法像以往一樣簡單的使
struts2動態方法呼叫和使用萬用字元定義action
struts.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Con
Elasticsearch中的萬用字元及正則表示式查詢
想要在ES中使用*或者?作為萬用字元進行模糊匹配? 看這篇就對了~ 本文為轉發!!! 轉自:https://blog.csdn.net/dm_vincent/article/details/42024799 wildcard查詢和prefix查詢類似,也是一個基於詞
Linux 命令列萬用字元及轉義符的實現
我們想對一類檔案批量操作,例如批量檢視硬碟檔案屬性,那麼正常命令會是: [[email protected] ~]# ls /dev/sda [[email protected] ~]# ls /dev/sda1 [[email protected] ~]# l
學員優秀博文賞析:泛型萬用字元及約束
最課程師徒班的同學正在紅紅火火的學習中。彷彿、應該、必須,到了跟大家階段性彙報成果的時候了。為什麼,因為畢竟當時把師徒班說的那麼好,就業班的同學該要鬧革命了。 師徒班相較於就業班,雖然課程內容和總量完全一樣,但學員的學習過程掌握了更多的主動性。而檢驗主動性一個重要的標準,除了
正則表示式萬用字元及vim
#####萬用字元 正則表示式 vim 使用 1.萬用字元:多對與檔名上操作 比如查詢find,ls,cp [abc] #有a或者有b或者有c [!abc] #除了含有a或者b或者c [^abc] #除了含有a或者b或者c [[:alpha
Struts2萬用字元和它的各種坑
Struts2和Servlet相比有幾個牛逼的地方。對OGNL表示式的整合以及萬用字元的運用就是其中兩個。 而J2EE標準中,與這兩個對應的分別是JSP中EL表示式的運用,以及urlPattern中的萬用字元。 前面的一篇文章中,講述了OGNL的使用(OGN
使用萬用字元定義Action
package zjh.struts2.lx; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport { private String message; public Strin
Struts2學習筆記(五):struts2萬用字元用法示例
本文主要介紹struts2配置檔案中萬用字元的用法。 先來看一個簡單的需求,index.jsp中有四個連結。 <a href="Action1_add">add1</a> <br/><br/> <a href="Acti
Linux 萬用字元 及特殊字元 $、\、`、
· 採取一定的規則進行選定。 問號“?”匹配任意一個字元 只能任意匹配一個字元。 星號“*” 匹配任意字串 可以匹配任何字串。 中括號“[]” 範圍內的一個字元 可以匹
Search Everything 利用操作符、萬用字元及正則表示式搜尋
Everything是一款穩定的檔案搜尋軟體,很少更新,我已經使用很多年了。 下面介紹一下如何使用操作符、萬用字元及正則表示式來搜尋以提高查詢效率。 1.如何使用布林操作符(and /or /not)
【SSH快速進階】——struts2呼叫action的三種方式
經過前段時間對struts2的學習與實踐,總結了一下在struts2中呼叫action的三種方式。 1、直接呼叫 我前面的部落格【SSH快速進階】系列第一篇《【SSH快速進階】——strut
【SSH三大框架】Struts2基礎第三篇:配置Action以及呼叫Action的三種方式
一、struts.xml中的包和名稱空間 1、Struts2不支援為單獨的Action設定名稱空間,而是通過為包指定namespace屬性來為包下面的所有Action指定共同的名稱空間。 如果在配置<package>的時候沒有指定namespace屬性,則該包下
struts2中從頁面取值的三種方式
在中我們建立了第一個struts程式,那麼如何把登陸頁面中的使用者名稱傳遞到登入成功的頁面中呢?有三種方式,1,使用預設的action的傳遞方式。2,自定義一個vo,在action中使用這個vo3,使用ModelDriven的方式。下面分別敘述。1,使用預設的action的
用python操作瀏覽器的三種方式
第一種:selenium匯入瀏覽器驅動,用get方法開啟瀏覽器,例如: import time from selenium import webdriver def mac(): driver = webdriver.Firefox()
分享知識-快樂自己:Struts2(動態方法、動態結果、萬用字元、方法內部跳轉、action跳轉、OGNL 的使用及注意事項)
這裡主要以案例演示:涵蓋以下知識點 1、動態方法呼叫:使用關鍵 符號 ! 進行操作 例如:/名稱空間 ! 方法名 2、動態結果集:就是說,通過後臺返回的結果 ${} 獲取,重定向到符合預期的頁面。 3、萬能萬用字元:*_* :第一個 * 為 類名、第二個 * 為方
Struts2-Action接受引數方式、method屬性使用及萬用字元的配置
一、Action接受引數的方式 1、屬性方式接收 首先編寫一個用於上傳引數的頁面 action配置 成功跳轉的頁面 action類程式碼 public cla
struts2 <action>無法使用萬用字元解決辦法
在我們使用struts2的時候,肯定不想每一個方法就寫一<action>,所以通常我們會使用萬用字元,簡化我們的程式碼。 <action name="userAction_*" class="userAction" method="{1}" >  
struts2.5.12版本使用action萬用字元提示找不到action的問題
我配置了一個PageAction <action name="*" method="{1}" class="com.cheng.web.action.PageAction"> <result name="success">/p