Struts2:核心配置文件
package标签
- 1: 类似于代码包,区别不同的
action,要配置action,必须首先写package标签,在package里面才能配置action。
- 2:
package标签属性。
- (1)
name属性:
name属性值跟功能本身没有关系的,
- 在一个配置文件中可以写多个
package标签,name属性值不能相同的。
- (2)
extends属性:
- 属性值是固定的
extends="struts-default"。
- 写了这个属性,在
package里面的类具有action功能。
- (3)
namespace属性:
namespace属性值和action标签里面的name属性值构成访间路径。
action标签。
- 1:
action标签配置action访间路径
- 2:
action标签属性
- (1)
name属性:
namespace属性值和action标签里面的name属性值构成访间路径。
- 在
package标签里面写多个action标签,但是action的name属性值不能相同的
- (2)
class属性:
- (3)
method属性:
- 比如在
action里面默认执行的方法execute方法,但是在action里面写其他的方法。
- 让
action里面多个方法执行,使用method进行配置。
result标签。
- 1: 根据
action的方法返回值,配置到不同的路径里面。
- 2:
result标签属性。
- (1)
name属性:
- (2) type属性:
- 配置如何到路径里(转发或者重定向)。
type属性默认值做转发操作。
源码:
- src:
struts.xml
<package name="hellodemo" extends="struts-default" namespace="/">
<action name="hello" class="com.yap.action.HelloAction">
<result name="ok">/hello.jsp</result>
</action>
</package>
修改Struts2默认常量值
- 1: 常用方式
- 在
struts.xml中进行配置。
<constant name="struts.i18n.encoding" value="UTF-8"/>
- 2: 还有两种方式(了解)。
- 在
src下面创建struts.properties进行修改
- 在
web.xml进行配置。
介绍最常用常量
- struts.i18n.encoding = UTF-8
- 1: 表单提交数据到
action里面,在action可以获取表单提交数据,
- 2: 表单提交数据有中文,有乱码间题,解决:
- 3: 如果在
action获取表单通过post方式提交中文,中文乱码间题帮解决了,不需要自己处理问题。
分模块开发
- 1: 单独写配置文件,把配置文件引入到核心配置文件中
<include file="路径"/> :引入xml路径。
Action的编写方式
- 1:
action编写有三种方式
- 创建普通类,这个不继承任何类,不实现任何接口
- 创建类,实现接口
Action
- 创建类,继承类
ActionSupporte
访问action的方法(重点)
- 1: 有三种方式实现
- (1) 使用action标签的method属性,在这个属性里面写执行的action的方法。
- (2) 使用通配符方式实现。
- (3) 动态访间实现(不用)。
- 2: 演示错误
- (1) 如果action方法有返回值,但配置文件没配置会出现这种错误。
No result defined for action cn.itcast.action.HelloAction and result ok
- (2) 在action里面的方法有返回值,如果有返回值时候类型必须是String
- (3) action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置
- 把方法返回值写出void。
- 让返回值,返回NONE。
<!-- 使用action标签method属性 -->
<!-- 创建action,创建多个方法,缺陷是每个action方法都需要创建。 -->
public class BookAction extends ActionSupport {
public String add() {
System.out.println("add...........");
return NONE;
}
public String update() {
System.out.println("update.........");
return NONE;
}
}
<package name="methoddemo" extends="struts-default" namespace="/">
<action name="addAction" class="com.yap.method.BookAction" method="add"></action>
<action name="updateAction" class="com.yap.method.BookAction" method="update"></action>
</package>
- psm:
http://localhost/Struts2_demo/updateAction.action
- psm:
http://localhost/Struts2_demo/addAction.action
使用通配符实现
- 1: 在
action标签里面name属性,name属性值里面写符号*星号
- xml:
struts.xml
<package name="methoddemo" extends="struts-default" namespace="/">
<action name="book_*" class="com.yap.method.BookAction" method="{1}"></action>
</package>
- psm:
http://localhost/Struts2_demo/book_update.action
- psm:
http://localhost/Struts2_demo/book_add.action