本文主要是介绍03 ActionWildcard_通配符配置02,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 在Gao_struts2/WebRoot新建Admin_add_success.jsp和Admin_add_db_success.jsp
其中Admin_add_success.jsp的<body>内容为:Admin add success! <br>
Admin_add_db_success.jsp的<body>内容为:Admin add db success! <br>
2. 新建java类
package action;
importcom.opensymphony.xwork2.ActionSupport;
public class AdminAction extends ActionSupport
{
public String add()
{
returnSUCCESS;
}
}
3. 在Gao_struts2/src目录下,修改struts.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<packagename="struts"namespace="/struts"extends="struts-default">
<actionname="user*"class="action.UserAction"method="{1}">
<result>/user{1}_success.jsp</result>
</action>
<actionname="*_*"class="action.{1}Action"method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
<actionname="*_*_*"class="action.{1}Action"method="{2}">
<result>/{1}_{2}_{3}_success.jsp</result>
</action>
</package>
</struts>
4. 运行
1) 启动tomcat
访问: http://localhost:2000/Gao_struts2/struts/Admin_add.action
页面显示:Admin add success!
2) 访问: http://localhost:2000/Gao_struts2/struts/Admin_add_db.action
页面显示:HTTP Status 500
javax.servlet.ServletException:java.lang.NoSuchMethodException: action.AdminAction.add_db()
3) 修改struts.xml,去除
<actionname="*_*"class="action.{1}Action"method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
4) 重新部署Gao_struts2,启动tomcat后,再次访问
http://localhost:2000/Gao_struts2/struts/Admin_add_db.action
页面显示:Admin add db success!
5. 总结
1) struts.xml中:*表示所有字符、*号之间用_分隔、{数字}表示第几个*,其中分隔符可以根据需要可以改成|等。
2) struts.xml中存在多个可以匹配上的action时,按上下顺序匹配,所以以_分隔*号时在struts.xml最好只有一个,不然很容易出问题!
3) struts.xml中一定要遵守"约定优于配置"的原则,这样我们的struts.xml的配置会很简洁,代码和jsp的风格也会很一致和清晰,便于维护。
4) 通过使用struts.xml的通配符,使得struts2的核心技术拦截器的使用能够应用到项目的一些需要切面的功能中如访问action时打印进出口日 志,访问action时记录用户信息等!这篇关于03 ActionWildcard_通配符配置02的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!