- 创建javaweb动态工程
- 导入核心包
- 编写struts的配置文件
- 添加头
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
2. 配置
<!-- struts根标签 -->
<!-- package
name 标签随便写,只要不重复就行 一般可以进行模块化区分
namespace 命名空间(访问Action网址前的一个网址部分)
extends 继承一个包 struts-default 默认配置,默认提供的功能
-->
<!-- action
name 是你这个类的访问的路径
class 类的全限定类名
method 类中被访问的方法
result
name 方法的返回值(匹配)
type 请求跳转的方式,默认是请求转发dispatcher
值部分:跳转的网站资源
-->
<struts>
<package name="hello" namespace="/hello" extends="struts-default">
<action name="HelloAction" class="com.lanou3g.hello.HelloAction" method="hello">
<result name="success">/hello.jsp</result>
</action>
</package>
<!-- 引入其他struts配置文件 -->
<include file="com/lanou3g/def/struts.xml"></include>
<include file="com/lanou3g/dynamic/struts.xml"></include>
<include file="com/lanou3g/test/struts.xml"></include>
</struts>
3.常量配置也写在跟标签内
<!-- 常量配置修改 -->
<!-- 去default.properties文件中找到你要修改的配置 -->
<!-- name:键值 value:值 -->
<!-- action,,
表示访问路径的后缀,可以是.action或者无后缀
-->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<constant name="struts.action.extension" value="action,,"></constant>
<!-- struts.devMode = false
可以给你的配置文件提供热加载(更改完了不用重启服务器)
-->
<constant name="struts.devMode" value="true"></constant>
4. 常量配置的动态方法也是写在跟标签中
<!-- 常量配置 动态方法 (不常用 搜索引擎抓取不好,网址过于复杂)-->
<!-- struts.enable.DynamicMethodInvocation = false -->
<!-- 默认动态方法是关闭的 -->
<!-- 使用 dynamic/Demo02Action!方法名 -->
<!-- 使用通配符配置访问路径 *是方法名
method 标签中{1}代表取到前面* 获取的方法名
-->
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<package name="dynamic" namespace="/dynamic" extends="struts-default">
<action name="Demo02Action_*" class="com.lanou3g.dynamic.Demo02Action" method="{1}">
<result name="success">/hello.jsp</result>
</action>
</package>
4.Action类的四种创建方式
1. 普通方法
/**
* Action类创建方式一
* 随便一个普通类都可以作为一个Action
* 只需要你去配置struts.xml文件
* 相比于servlet 减少代码的侵入性
*/
private String pub() {
System.out.println("123456");
return "success";
}
2.实现Action接口
@Override
public String execute() throws Exception {
return null;
}
3.常用方式
/**
* 常用方法 Action类 方式
* 因为该类实现了很多接口,一个接口就有一个功能
* @author lanou
*
*/
public class Demo05Action extends ActionSupport{
}
4.标签默认值
/**
* action标签的默认值
* @author lanou
*
*/
public class Demo06Action {
public String execute() {
System.out.println("测试action标签的默认值");
return "success";
}