Struts
- 是流行和成熟的基于MVC设计模式的Web应用程序框架
- 使用Struts减少在运用MVC设计模式来开发Web应用的时间
MVC模式:
- JSP + JavaBean = Model1
- JSP + Servlet + JavaBean = Model2
Struts发展
Struts2执行原理及过程
搭建Struts2环境步骤
- 创建Web项目
- 下载并导入相关jar包
- 配置过滤器
- 添加至web.xml
- 创建Action
- 创建并完善相关配置文件
- 核心配置文件(struts.xml)和位置(src)固定
- 引入dtd约束
- 测试启动,访问配置文件中的action标签的name(一般后缀jiashang.action)
struts.xml中的标签
- package:类似于代码包,区别不同的action,要配置action必须先写package标签,在package里才能配置action
- name属性:name值唯一
- extends属性:属性值固定,写了这个属性之后,配置的action才有效。extends=”struts-default”
- namespace属性:namespace属性值和action标签里的name属性值构成访问路径,namespace=”/”
- action:配置action访问路径
- name属性:namespace属性值和action标签里面的name属性值构成访问路径。在package标签里写多个action标签,但是action的name属性值不能相同
- class属性:action全路径
- method属性:指定访问action的方法
- result:根据action的方法返回值,配置到不同的路径里
- name属性:和方法的返回值一样。如<result name=”ok”>/htllo.jsp</result>
- type属性:配置如何到路径中(转发或者重定向),默认做转发操作
常量配置
- 在struts.xml中配置
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
- 在src下创建struts.properties文件进行配置
- 在web.xml中进行配置
分模块开发
- 单独写配置文件,把配置文件引入到核心配置文件中
<!-- 引入hello.xml文件 -->
<include file="com.hello.xml"><include/>
Action三种编写方式
- 创建普通类,不继承任何类也不实现任何接口
- 创建类,实现Action接口
- 创建类,继承ActionSupport类
访问Action中指定的方法
- 配置action标签的method属性,属性值为方法名
<action name="addAction" class="com.BookAction" method="add"></action>
- 使用通配符方式实现
<!-- name属性值里写符号* 如果要执行action里面的add方法,访问book_add,使用book_* 可以匹配到,此时*相当于add --> <action name="book_*" class="com.BookAction" method="{1}"></action>
- 动态访问实现
- 动态方法访问在Struts2中默认是不开启的,如果想要使用需要先开启一个常量
<constant name=”struts.enable.DynamicMethodInvocation” value=”true”></constant> - 动态方法访问主要的控制是在页面端,所以编写Action和配置Action都很简单,关键是访问路径的编写
- 配置Action:
<action name=”userAction” class=”com.UserAction”></action> - 页面访问路径:
<a href=”${pageContext.request.contextPath}/userAction!save.action”>添加用户</a>
**如果action方法的返回值在配置文件中没有配置,则有404错误;如有返回值则返回值类型必须为String;可以没有返回值或返回值为”none”
- 动态方法访问在Struts2中默认是不开启的,如果想要使用需要先开启一个常量