计应134 陈帮政
Struts 2的认识
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
在MyEclipse中配置Struts 2
新建一个动态web项目在项目上右击选择Add Struts Capabilities...具体操作如下图所示
点击后在弹出的界面中按照下图所示配置,最后会生成一个Struts.xml文件
在Struts.xml文件中配置响应文件(action)
package节点是整个配置的核心部分。每个package,从语义上讲,其实代表了每一个独立的模块。在这个模块中,你可以定义隶属于这个模块的行为方式,而与其他的模块没有关系。所以,每个package都有独立的interceptor、result-type和action的定义,绝大多数的Runtime配置定义都是通过package节点实现的。
1. name
name属性为每个package设置一个唯一的标识,这个标识在所有的package定义中不能重复。
2. abstract
标识这个package的定义是一个抽象定义,也就是允许他仅包含声明式的定义,而不需要在package定义中包含action的定义。
3. extends
通过使用extends,你可以指定本package继承另外一个package的所有的配置。当某个package继承了另外一个package的所有配置,那么你就无需对父package中已经声明过的配置定义做再次的定义。
同时,如果重复定义父package中已声明过的配置定义,那么这些重复定义声明将覆盖父package中的相关定义。
使用action标签,可 以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定 了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。
action标签的属性:
id:可选属性,该属性将会作为该Action的引用ID
name:必填属性,指定该标签调用哪个Action
class:必填属性,指定该action标签调用那个java类。
namespace:可选,指定该标签调用的Action所在的namespace.
executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。默认是false,即不包含
ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。
result标签用于接收后台程序执行的结果
name:其值位后台返回的结果当后台返回的结果与name值相同是执行跳转。如:
<result name="success">studentmassage.jsp</result>
当后台java代码返回success时系统将跳转到studentmassage.jsp页面