struts2.x
struts2.x 不是struts1.x的升级版,是struts1.x和WerbWork合作,来源于另一个非常有名的MVC框架WebWork
大的设计模式还是MVC
struts2的 控制器由两部分组成:FilterDispatcher和业务逻辑Action
struts2提高了丰富的视图展示:JSP,FreeMarker/Velocity,JasperReport等报表类型
struts2有一个包的概念:
name:包的名称,必填属性,其他包可以通过该属性引用该包
extends:表名该包继承其他包,且可以继承其他包的action和拦截器
namespace:命名空间,区别同一个包中的重名action, 如果namespace="/abc",则jsp页面需要跳转:action="abc/login.action",可写可不写
abstract:是否为抽象包,抽象包里面不能包含action的定义
常量配置的三个地方:
struts2.x 不是struts1.x的升级版,是struts1.x和WerbWork合作,来源于另一个非常有名的MVC框架WebWork
大的设计模式还是MVC
struts2的 控制器由两部分组成:FilterDispatcher和业务逻辑Action
struts2提高了丰富的视图展示:JSP,FreeMarker/Velocity,JasperReport等报表类型
AOP面向方面编程思想(OOP面向对象编程思想)
struts2.x的jar包里:
struts-blank,war:该文档是一个简单的struts小例
struts-showcase.war:该文件展示了struts2的各种应用,对学习非常好
JSP页面:
用户名:<input type="text" name="username"></input>${tip}<br/>
struts2没有表单一说,生成的类也不需要继承actionForm等,但需要添加一个execute方法
public String execute() throws Exception{
return "success";//字符串必须和配置文件匹配
// return "input";
}
struts2不用1.x的struts-config.xml,src下面有一个struts.xml配置文件
struts2有一个包的概念:
<struts>
<package name="example" namespace="/" extends="struts-default">
<action name="login" class="com.action.LoginAction" method="execute">
<result name="success">/Success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
<package name="forum" namespace="/" extends="example">
</package>
<struts>
<package>标签属性
name:包的名称,必填属性,其他包可以通过该属性引用该包
extends:表名该包继承其他包,且可以继承其他包的action和拦截器
namespace:命名空间,区别同一个包中的重名action, 如果namespace="/abc",则jsp页面需要跳转:action="abc/login.action",可写可不写
abstract:是否为抽象包,抽象包里面不能包含action的定义
extends="struts-default": "struts-default"是struts2的默认配置,主要是bean配置和package配置两部分
bean的配置:通过bean的配置实现struts2最简单的依赖注入(DI)
package的配置:
result配置:提供了丰富的result类型包括传统的jsp,一些模板引擎freemarker,velocity以及plainText等
Interceptor的配置:拦截器是struts2的核心,几乎7成的实现通过拦截器实现的
Bean的配置:
<bean type="" name="" class="" scope="">
type:struts2定义的规范接口
class:bean实例的实现类
name:Bean实例的名称
scope:Bean的作用域
default的<result>标签name种类
chain:
dispatcher:默认,跳转
freemarker:
redirect:重定向
redirectAction
stream:流,如传输图片等需要用到
velocity:
xslt:
plainTest:显示html文本代码,源代码
redirect-action:
plaintest:
常量配置的三个地方:
1. struts.xml(最常用)
<constant name="struts.custom.i18n.resources" value="MessageResource">
2. struts.properties
struts.custom.i18n.resources=MessageResource
3. web.xml
<init-param>
<param-name>struts.custom.i18n.resources</param-name>
<param-value>MessageResource</param-value>
</init-param>
struts.xml里面<include>标签,配置其他xml文件
<include file="blog.xml"></include>