版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/fengyu_xueer/article/details/78410803
1.前言
一直在学习javaweb方面的知识,断断续续的学到了struts2,深感java框架的博大精深,自己的水平有限(菜鸡),本着好记性不如烂笔头的原则,打算把自己学到的东西写一篇博客,就当复习以及以后查询的笔记资料了。
2.环境搭建
1.创建一个web工程
2.导入需要的jar包
- 1、打开下载下来的struts-2.3.24开发包,找到apps目录下的struts2-blank.war,解压,赋值其lib下的jar文件到自己的项目的lib下。
PS:开发包的lib目录下有struts2的全部jar包,打开可以看到有近百个(具体没数),这无疑是比较恐怖的,根本不需要这么多,故可采用上述方法,其余的若有需要再到lib目录下拷贝即可。
3.添加dtd约束:在写struts.xml文件时,如果有xml的提示,无疑是非常方便的,这就要导入struts-2.3.dtd包,让系统自动有提示功能,步骤如下:
4.书写Action类
public class HelloAction {
public String Hello(){
System.out.println("Hello Action!");
return "success";
}
}
5.添加struts.xml文件:src目录下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- i18n:国际化,解决post提交乱码问题 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<!-- 指定访问action时的后缀名 -->
<constant name="struts.action.extension" value="action"></constant>
<!-- 指定struts2是否以开发模式运行
1.热加载主配置.(不需要重启即可生效)
2.提供更多错误信息输出,方便开发时的调试
-->
<constant name="struts.devMode" value="true"></constant>
<!-- package:将Action配置封装.就是可以在Package中配置很多action.
name属性: 给包起个名字,起到标识作用.名字任意.不与其他包名重复即可.
namespace属性:给action的访问路径中定义一个命名空间
extends属性: 继承一个 指定包,一般为固定写法:struts-default
abstract属性:包是否为抽象的; 标识性属性.标识该包不能独立运行.专门被继承,默认为false,一般不写
-->
<package name="hello" namespace="/hello" extends="struts-default">
<!-- action元素:配置action类
name属性: 决定了Action访问资源名.
class属性: action的完整类名
method属性: 指定调用Action中的哪个方法来处理请求
-->
<action name="HelloAction" class="com.qiu.structs2.action.HelloAction" method="Hello" >
<!-- result元素:结果配置
name属性: 标识结果处理的名称.与action方法的返回值对应.
type属性: 指定调用哪一个result类来处理结果,默认使用转发.
标签体:填写页面的相对路径
-->
<result name="success" type="dispatcher">/hello.jsp</result>
</action>
</package>
</struts>
6.在web.xml中配置struts的核心过滤器
<!-- struts2核心过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
7.至此,struts2的环境就算是搭建好了,同时也有了一个最基本的测试类HelloAction,现在就可以测试一下了。
3.配置相关
1.常量配置
- struts2默认常量配置位置
扫描二维码关注公众号,回复:
4450699 查看本文章
- 方式1:在src->struts.xml中配置(常用,推荐)
- 方式2:在src下创建struts.properties
- 方式3:在项目的web.xml中
- 加载顺序:方式1-方式2-方式3,若后边的与前边的冲突,则会覆盖前边的。
配置进阶:动态方法调用
- 方式1:参数配置方式
- 方式2:通配符方式
4.Action类的书写方式
方式1
public class HelloAction {
public String Hello(){
System.out.println("Hello Action!");
return "success";
}
}
方式2
public class Hello1Action implements Action{
public String execute() throws Exception {
System.out.println("Hello1 Action!");
return SUCCESS;
}
}
方式3(推荐)
public class Hello2Action extends ActionSupport{
public String execute() throws Exception {
System.out.println("Hello2 Action!");
return SUCCESS;
}
}
5.总结
以上就是本人学习struts2的入门心得,水平有限,欢迎批评指正,谢谢!