struts2学习笔记——第一个struts2应用配置
说实在的,随着Java学习的不断深入,特别是Java web框架部分,调bug让人很心累,但是每征服一个bug,内心的成就感也是难以言说的。第一个struts2应用的配置,我昨天折腾了快2个小时,最后还是放弃了,今天在摸索之下,终于打通了第一个struts2的任督二脉,下来就把我个人的配置过程写下来,希望后面学习的java友少走的弯路。
一、创建web工程(eclipse k kepler版本):
直接上图:



二、导入struts2关键包
1、需要导入的关键包,不导入这些包会导致报错,我就知bug在这里了:

我没有导入log4j-api-2.7.jar然后tomcat就无法启动了,这里还要注意的是,在2.5之前的版本中导包时还需要导入xwork这个包,在2.5中该包已经包含在struts的核心包中了,我们也就省去了这一步,不相信的java友可以打开核心包看下包结构:

2、导包过程:

如上图,添加9个必须包;下面的操作是添加一个struts2的个人包库,方便后面创建struts2,总不能每一次都导入一次:



导包到此结束,后面开始最麻烦的web.xml的配置
三、action编码:
必须继承com.opensymphony.xwork2.ActionSupport,并重写execute()方法:
package com.sysker.main;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
/**
* action test
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("执行Action");
return SUCCESS;
}
}
四、配置文件
1、web.xml的配置:
注意:其中<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>和2.5之前的版本是不一样的,以前的是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter但是你看一下源码就知道如何修改,这一对标签是配置filter类——StrutsPrepareAndExecuteFilter,打开struts2的核心包struts2-core-2.5.10.1.jar,参考之前的配置路径看一下就会发现区别:

这就是java的包管理,其他的配置也可以参考这个方式。
完整配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>struts2001</display-name><!-- 项目名称 --> <filter>
<filter-name>struts2001</filter-name><!--过滤器名称-->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!--过滤器地址,配置完按住Ctrl看鼠标是否可以打开连接,能打开说明配置正确-->
</filter> <filter-mapping>
<filter-name>struts2001</filter-name><!--和上面的必须一致-->
<url-pattern>/*</url-pattern><!--过滤地址,*表示过滤所有页面-->
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
2、struts.xml配置文件:
首先路径和web.xml是不一样的,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> <package name="default" namespace="/" extends="struts-default"><!--这个还没深入了解,但是是必须的-->
<action name="helloworld" class="com.sysker.main.HelloWorldAction"><!--配置action的路径,完整包名-->
<result>/result.jsp</result><!--执行action后返回的结果-->
</action>
</package> </struts>
到这里,第一个struts2就可以顺利执行了,欢迎交流!
struts2学习笔记——第一个struts2应用配置的更多相关文章
- Struts2学习笔记(1)---相关配置
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 1创建action对象(三种) 1 创建普通的类,不继承任何类, ...
- Struts2学习笔记01 之 简介及配置
一.Struts简介 * 是轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层.运用ASOP的思想,使用拦截器来扩展业务控制器 二.使用步骤: 1.引入Sturts2的相关JAR包 2 ...
- struts2学习笔记之十一:struts2的类型转换器
Struts2的类型转换器 如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString 注 ...
- struts2学习笔记之九:struts2的命名空间
struts2的命名空间适用于多人开发,根据不同模块命名不同的命名空间,方便开发和管理 struts2如果没有配置命名空间,默认命名空间为"/",Struts2中Action的完整 ...
- 【Struts2学习笔记-8】Struts2实现json数据的返回
需要的jar包 struts2-json-plugin-2.3.12.jar xwork-core-2.3.16.3.jar struts.xml 来自为知笔记(Wiz) 附件列表 IMG_20150 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Struts2学习笔记⑧
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...
- Struts2学习笔记①
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...
- Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...
随机推荐
- 分享知识-快乐自己:mongodb 安装部署(linux)
1):下载 mongodb 包 [root@admin tools]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6. ...
- 在程序中对ArrayList进行排序,并剔除重复元素
import java.util.*; class sortDemo { public static void main(String[] args) { ArrayList<Object> ...
- SQL Server DBA十大必备工具使生活轻松
[IT168 技术]曾经和一些DBA和数据库开发人员交流时,问他们都用过一些什么样的DB方面的工具,大部分人除了SSMS和Profile之外,基本就没有使用过 其他工具了;诚然,SSMS和Profil ...
- HEOI2017题解
Day 1 : T1 : 期末考试 很水的一道题,但是自己搞了大半天过不了大样例. 最后还A了... 主要思想就是枚举最后一个完成的任务的时间 然后对两部分的代价分类讨论统计一下. (考试代码,略丑) ...
- bzoj 3926: 诸神眷顾的幻想乡 广义后缀自动机
题目: Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给 ...
- Django学习(1)——python manage.py startapp app-name新建app报错问题
作为一个刚接触python的小白,开始学习Django注定前路漫漫,记录一下学习过程中的问题和解决方案. 感谢“自强学堂”的无私奉献,根据教程安装了Django 1.9.12后,尝试新建项目,此时使用 ...
- BZOJ1727:[Usaco2006 Open]The Milk Queue挤奶队列
我对\(Jhonson\)算法的理解:https://www.cnblogs.com/AKMer/p/9863620.html 题目传送门:https://www.lydsy.com/JudgeOnl ...
- 简单易懂dubbo入门实例
一.创建Maven多模块项目 项目结构如下 模块介绍: dubbo-api ----API接口 dubbo-consumer ----消费者 dubbo-provider ...
- Vijos:P1098合唱队形
描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…, ...
- FATFS 文件系统
转载请注明出处:http://blog.csdn.net/qq_26093511/article/details/51706228 1.文件系统是什么? 负责管理和存储文件信息的软件机构称为文件管理系 ...