基础配置见代码:
<?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 常量配置 -->
<!-- struts.action.extension 请求扩展名,多个扩展名之间用“,”分隔
默认设置为“action,,”,即可以访问后缀为“action”和不带后缀的页面 -->
<constant name="struts.action.extension" value="do,,"></constant>
<!-- struts.devMode 开发者模式,默认值为“false”,改为“true”后,改动后即时生效 -->
<constant name="struts.devMode" value="true"></constant>
<!-- struts.enable.DynamicMethodInvocation 动态方法调用开关
默认值为“true”,改为“false”后,改动后不允许动态调用(使用“!”调用方法) -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<!-- package 可以有多个 -->
<!-- namespace 命名空间,虚拟目录
默认是"",表示所有的namespace访问,都会到这个namespace里面找
配置为"/"时,效果相同,即****/index都可以访问到index
配置为"/abc"时,则访问路径必须为/abc/index
extends="struts-default":继承了Struts 2的默认配置
-->
<package name="default" namespace="/" extends="struts-default">
<!-- 默认执行action,调用的action找不到时,执行这个action -->
<!--
<default-action-ref name="index"></default-action-ref>
<action name="index" class="cen.ner.action.TestAction_1" method="act">
<result>/Test_1.jsp</result>
</action>
-->
<!-- class action对应的类
method 类中对应的方法,不写则默认执行execute()方法
不配置 class和method时,默认执行“ActionSupport”类中的“execute()”方法,直接进行跳转
-->
<!--
<action name="index" class="cen.ner.action.TestAction_1" method="act">
<result>/Test_1.jsp</result>
</action>
<action name="index2" class="cen.ner.action.TestAction_2">
<result>/Test_1.jsp</result>
</action>
-->
<!-- 1.使用通配符来调用类中的不同方法
如:“user_add”,调用“UserAction”中的“add”方法
如:“user_del”,调用“UserAction”中的“del”方法
-->
<!--
<action name="user_*" class="cen.ner.action.UserAction" method="{1}">
<result>/Test_1.jsp</result>
</action>
-->
<!-- 2.使用通配符来调用不同类中的不同方法
如:“Admin_add”,调用“AdminAction”中的“add”方法
如:“Admin_del”,调用“AdminAction”中的“del”方法
-->
<!--
<action name="*_*" class="cen.ner.action.{1}Action" method="{2}">
<result>/Test_1.jsp</result>
</action>
-->
<!-- 3.使用通配符来调用不同类中的不同方法,跳转不同的页面
如:“Admin_add”,调用“AdminAction”中的“add”方法
如:“Admin_del”,调用“AdminAction”中的“del”方法
-->
<!-- 注意:使用通配符时,调用名越精确,越先调用
如“Admin_add”和“Admin_*”同时存在时,优先调用“Admin_add”对应的方法
同时,通配符的使用,和default-action-ref(默认action)不兼容
-->
<action name="*_*" class="cen.ner.action.{1}Action" method="{2}">
<result>/{1}_{2}.jsp</result>
</action>
</package>
<!-- 协同开发时,可以使用include引入多个配置文件
<include file=""></include>
-->
</struts>
提示:在struts.xml中修改代码时,如果不能正常提示,可以手动更改索引路径:
Window –> Preferences –> 检索“xml”–> Add
File System选择文件路径,在Struts 2的源文件路径中找到“struts-2.3.dtd”文件,地址如下:
…\struts-2.3.28.1\src\core\src\main\resources
Key type选择“URL”
Key填写“http://struts.apache.org/dtds/struts-2.3.dtd”
OK即可。