Struts2还支持配置默认Action,当用户请求找不到对应的Action时,系统默认的Action即将处理用户请求。
配置默认Action通过<default-action-ref>元素完成,一般配置在struts.xml文件中<package>元素下。
login_register.jsp :
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
function register(){
var targetForm=document.forms[0];
targetForm.action="registerAction";
}
function login(){
var targetForm=document.forms[0];
targetForm.action="loginAction";
}
</script>
<form action="login_register" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录" οnclick="login();">
<input type="submit" value="注册" οnclick="register();">
</form>
</body>
</html>
success.jsp :
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
success...
</body>
</html>
struts.xml :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<package name="demo" extends="struts-default">
<default-action-ref name="defaultAction"/>
<action name="action" class="action.LoginRegister">
<result name="success" type="dispatcher">/ok.jsp</result>
<result name="login" type="redirect">/login_register.jsp</result>
</action>
<action name="defaultAction" class="action.DefaultAction">
<result name="success" type="dispatcher">/success.jsp</result>
</action>
</package>
</struts>
从上面的配置中可以看出,配置默认Action使用
<default-action-ref>元素即可,配置该元素时需要指定一个name属性,该name属性指向另一个有效的Action,该Action将成为Struts2默认的Action。
DefaultAction.java :
public class DefaultAction {
public String execute(){
return "success";
}
}