Struts2中呼叫Action的方法
阿新 • • 發佈:2019-01-26
Struts2中Action的呼叫方法可以分為三種
第一種:首先定義一個Action類,這個類中有兩個方法一個登入,一個註冊
其實還有三個屬性:public String login(){ System.out.println("登入的方法........................"); if (username.equals("demo") && password.equals("demo")) { return "login_success"; } else { return "error"; } } public String register(){ System.out.println("註冊的方法........................"); if (password.equals(repassword)) { return "register_success"; } else { return "error"; } }
private String username;
private String password;
private String repassword;
還有get set方法
然後配置Action
最後動態呼叫<action name="user" class="com.action.packages.UserAction"> <result name="login_success">WEB-INF/pages/login_success.jsp</result> <result name="register_success">WEB-INF/pages/register_success.jsp</result> <result name="error">WEB-INF/pages/error.jsp</result> </action>
<form action="user!login.action">
使用者名稱:<input type="text" name="username"/><br/><br/>
密 碼:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>
這個就是呼叫的配置中名為user 的Action中的login方法,呼叫register方法如下:
總結一個公式就是:actionName!methodName.action<form action="user!register.action"> 使用者名稱:<input type="text" name="username"/><br/><br/> 密 碼:<input type="password" name="password"/><br/><br/> <input type="submit" value="提交"/> <input type="reset" value="重置"/> </form>
如果通過user.action方式進行呼叫,此時應該呼叫UserAction的execute()方法。沒有那就等著報錯!
上述方式在配置Action的時候就是配置struts.xml的時候,有的版本需要加上這樣一句配置
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
第二種方式使用method屬性來實現
同上同樣是那個UserAction,同樣當中有兩個方法
配置struts.xml的寫法
通過不同的action的名字(name屬性)來呼叫就可以了
第三種萬用字元
<action name="*Dynamic" class="com.action.packages.UserAction" method="{1}">
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>
如果訪問register方法:
<form action="registerDynamic.action">
使用者名稱:<input type="text" name="username"/><br/><br/>
密 碼:<input type="password" name="password"/><br/><br/>
確認密碼:<input type="password" name="repassword"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>
看到沒有register佔用了星號,這個時候標記為{1}的地方都會替換為register,如果是login也是同理的。替換過後你就可以明白誰呼叫誰,然後該往哪個頁面跳了吧。