前面一章讲了下动态配置的方法。那样,能够直接动态的调用action里面的方法,
这里展示一种配置更少,更简洁的一种方法。
在前一章其他不变的情况下,改变配置文件
<package name="Menu" namespace="/Menu" extends="struts-default">
<action name="*" class="com.almostman.action.{1}Action" >
<result name="success">/success.jsp</result>
<result name="input">/input.jsp</result>
</action>
</package>
这里的 “*” 表示你输入的内容,{1}表示第一个*的内容,这里具体调用的method不用去指定,因为用了动态调用,方法可以直接通过 “!”去调用。
MainPageAction.java
package com.almostman.action; import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result; import com.opensymphony.xwork2.ActionSupport; public class MainPageAction extends ActionSupport{ /**
*
*/
private static final long serialVersionUID = 1L; @Override
public String execute() throws Exception { if("admin".equals(username) && "admin".equals(password)){
return SUCCESS;
} return INPUT;
} public String init() throws Exception { if("admin".equals(username) && "admin".equals(password)){
return SUCCESS;
} return INPUT;
}
public String add() throws Exception { if("admin".equals(username) && "admin".equals(password)){
return SUCCESS;
} return INPUT;
} private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
这里的调用URl是
http://localhost:8081/struts013/Menu/MainPage!init.action?username=admin&password=admin
通过Action名和方法直接进行了访问,甚至返回都可以用通配符固定返回的页面也和调用的一样,这样名字都不用去想不同的。