1.struts.xml文件配置:
包配置<package>标签、常量配置<constant>标签、包含配置<include>标签
①<package> :主要对action配置,package的属性值一般固定写法
<!--配置Struts2的包
package :
name :包名 方便管理action,不能与项目中的包名一样
extends :继承哪个包,值通常不修改......struts-default(里面实现了各种拦截器)
namespace :名称空间,与<action>标签中的name属性共同决定访问路劲
三种写法: 带名称的名称空间 :namespace="/aaa" 先访问
根名称空间 :namespace="/"
默认名称空间 :namespace=""
abstract :抽象的包,用于其他包的继承
-->
<package name="hello" extends="struts-default" namespace="/">
<!--配置Action
name :与namespace共同决定访问路劲
class :Action的全路径
method :执行Action的那个方法名的名称: 默认值.....execute()
converter :自定义一个类型转化器
-->
<action name="hello" class="com.jjxy.struts2.HelloAction" method="execute">
<!--配置页面的跳转-->
<result name="success">success.jsp</result>
</action>
②<constant> : 常量配置,Struts2内置非常多的常量.....在struts2-core-2.3.24.jar 中的 default.properties文件中
<!--struts2常量配置
常量修改 :配置文件的加载顺序 1->2->3 后加载的配置文件会覆盖前面的配置文件
1.struts.xml constant标签(常量配置首选位置)
2.在src下新建一个struts.properties文件 只能修改常量
3.在web.xml文件 初始化参数 filter 标签中 <init-param>
<param-name>struts.action.extension</param-name>
<param-value>action</param-value>
</init-param>
-->
<constant name="struts.action.extension" value="action"/><!--修改structs2 的扩展名-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/><!--动态方法访问打开-->
③<include> : 引入其他路径下的配置文件....分模块开发
<include file="com/jjxy/struts2/demo1/pojo_struts.xml"/>
<include file="com/jjxy/struts2/demo2/struts.xml"/>
2.Action控制类的三种方式 :
pojo(简单的java对象)、实现Action接口、继承ActionSupport类(开发常用的方式)
①pojo ................只需在控制类中定义一个返回值为String类型的execute()方法 :如下
public class HelloAction {
public String execute(){
System.out.println("HelloWorld!!!");
return null;
}
}
注:execute()是受核心配置文件struts.xml,包配置的中的action标签中的method属性指定的默认值。如果要更改方法名,只需自己自定义即可。
②实现Action接口 :Action接口中定义了五个常量和一个默认的execute()方法
* Action接口:提供了五个常量(五个逻辑接口的名称)
* SUCCESS :成功
* ERROR :失败
* LOGIN :登录出错页面跳转
* INPUT :表单校验、类型转换出现错误跳转
* NONE :页面不跳转
*
* */
public class ActionImpl implements Action {
@Override
public String execute() throws Exception {
System.out.println("ActionImpl执行.....");
return NONE;
}
}
注: 返回的常量值要与struts.xml文件中<action>标签的里的<result>的name属性值对应,这样就可关联跳转
③继承ActionSupport类 :它实现了Action接口和其他一系列的接口,功能强大,撸它就没错了。