Struts2.0初步
Struts2.0初步学习纪要
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。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的变化很小。;
struts.xml 文件配置
- package标签的namespace属性,如果是填写为”/”,代表根命名空间,只能处理”项目名/action名字.action“,如果是填写为”“,代表空命名空间,可以处理项目下所有action;
- package的name属性,只用来继承,action匹配时候是先查找命名空间namespace的,如果namespace相同,那么后者替换前者;
- Result设置中,返回的name,是和action里执行的class的某一个方法之后返回的String字符串-逻辑视图名-相对应的,ps,Action里的class是”包.类名“形式,并且Action还有个method=”“,如果是默认为空,则调用execute方法,可省略;
- Result还可以选择多种ResultType,默认是jsp,还可以是freemaker,velocity等视图技术等;
<action name="login" class="com.gastby.LoginAction">
<result name="success">/Login/success.jsp</result>
//下列即为默认success的action操作,和上述一样
//<result>/Login/success.jsp</result>
<result name="input">/Login/login.jsp</result>
</action>
Action实现
大多数struts2框架都会继承com.opensymphony.xwork2.ActionSupport类,并重写里面的execute方法,注意啊!!!重写过程中,如果有和请求参数对应的属性,变量等,一定加上setter和getter方法,不然无法正确处理http请求参数!!!
POJO
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
关于JavaBean和POJO区别,请戳下面链接
https://www.cnblogs.com/zhwl/p/3175306.html
- 如果Action没有加上class属性,那么默认action都是把ActionSupport类当作处理类的;