action: 应用程序可以完成的每一个操作. 例如: 显示一个登陆表单; 把产品信息保存起来
Action类: 普通的 Java 类, 可以有属性和方法, 同时必须遵守下面这些规则:
1.属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生
2.必须有一个不带参的构造器
3.至少有一个供 struts 在执行这个 action 时调用的方法
4.同一个 Action 类可以包含多个 action 方法.
5.Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例
Action类: 普通的 Java 类, 可以有属性和方法, 同时必须遵守下面这些规则:
1.属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生
2.必须有一个不带参的构造器
3.至少有一个供 struts 在执行这个 action 时调用的方法
4.同一个 Action 类可以包含多个 action 方法.
5.Struts2 会为每一个 HTTP 请求创建一个新的 Action 实例
创建Action有三种方式:
1.Action可以是一个普通的类, 不需要实现任何接口或继承任何类。
2.Action可以实现Action接口
3.不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
1.Action可以是一个普通的类, 不需要实现任何接口或继承任何类。
2.Action可以实现Action接口
3.不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
Action的配置,action完整的属性如表所示:
Action配置中的各项默认值
Action配置中的各项默认值
<package name="default" extends="struts-default" namespace="/">
<action name="myAction1" class="com.ambow.struts2.action.MyAction1">
<result name="success">
/ActionIntroduction.jsp</result>
</action>
</package>
1>如果没有为action指定class,默认是ActionSupport。
2>如果没有为action指定method,默认执行action中的execute() 方法。
3>如果没有指定result的name属性,默认值为success。
2>如果没有为action指定method,默认执行action中的execute() 方法。
3>如果没有指定result的name属性,默认值为success。
可以用动态的方法调用,下面通过一个例子来体现
第一步:导包
第二步:在web.xml中配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
第三步:jsp界面
然后struts.xml中如下配置
这个第一种 method
然后再
类中,写add方法
最后跳转到结果页面
第二种DMI
第三种 wildcard
传括号里边的值给xml,*Action,如果点的加 则是addAction,则method接受到的是*对应的add方法
还有一种 注入参数
直接再xml中配置需要的值,然后输出