Struct.xml Action配置

struct通过这个action寻找目的视图的过程其实是分为以下几步的:

1. 找出与url中地址匹配name的action

2. 找到这个action后,看他的class与method属性,得到这个class对象对应的method方法的返回值(一定是字符串)

 class默认值是ActionSupport

     method默认值是execute

3.  寻找与返回值具有匹配的name的result

所以Action的配置有以下三种:

具体视图的返回可以由用户自己定义的Action来决定

具体的手段是根据返回的字符串找到对应的配置项,来决定是视图的内容

Action 的class的处理

  • 具体的Action的实现可以是一个普通的java类,里面有public String execute方法即可(忘掉)
  • 实现Action接口且实现他的execute方法(忘掉)
  • 从ActionSupport类继承,好处是它可以直接使用Struct2封装好的方法

Action如果没有class属性,那么默认的就是ActionSupport。

看ActionSupport这个类的源码,会发现有一个方法:

其实Struct就是默认调用的这个方法

但是Action执行的时候并不一定执行execute方法

Action 配置

  • 1 可以通过在配置Action的时候加上一个method属性

忘掉,太不灵活,会产生大量的action(一个方法一个action)

  • 2 在url地址中动态指定(动态方法调用DMI)

然后要配url,配置url的时候,用个感叹号把方法分开

这样的话对于同一个类 只需要上面一条action即可,但是在UserAction中注意要写上不同的方法

  • 3.通配符

{1} 表示第一个*

 使用通配符,可以将配置量降到最低

遵守 约定大于配置的原则,

匹配顺序

  • 如果有多个action符合的话,不带通配符的级别高
  • 只要是含有通配符的都是一个级别,谁在前面匹配谁