前言

最近离职在家,发现之前学习的Struts2框架由于长时间不使用有点生疏,有鉴于此写下此文以备自己复习使用,同时也供大家批评指正。

准备工作

我觉得Struts2主要就是对Servlet的封装,还有些其他功能。所以建议先学好了Servlet再学Struts2。我当时是在培训机构学的,开始不懂后来做多了,也就明白一些了。

本文基于JDK7,Struts2.3,Tomcat7,eclipse进行操作的。

使用Eclipse新建一个Java Web项目,如下图:(记得把项目编码改成UTF-8的,要不会出现中文乱码的)

注意:一定要勾选上面图片的生成web.xml的对号,否则要自己手动生成。

导包

下面的图片的图片是struts2.3的jar包,下载路径:https://pan.baidu.com/s/1kUVMtYR。

![](http://images2015.cnblogs.com/blog/694294/201702/694294-20170218151305238-751980643.png)

每个包的具体作用如下:

将上面的包放入项目的/WebContent/WEB-INF/lib中。

配置web.xml

Struts2是通过filter(拦截器)来启动的,因此web.xml需要为Struts2配置拦截器。

如图在org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的init()(初始化)方法中将会自动搜索并读取struts.xml完成初始化操作。

注意:Struts2.1.3以下版本的Struts2拦截器对应的类是org.apache.struts2.dispatcher.FilterDispatcher

Struts2.1.3以上版本的Struts2拦截器对应的类是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter (本处用的是2.3所以是该类)

配置struts.xml

在项目的src目录下新建struts.xml(名字不能改,必须是小写的struts.xml)。

注意:有很多人说在src目录下建立struts.xml,有人说在项目的/WebContent/WEB-INF目录下新建struts.xml。其实都一样,因为src目录是项目默认的Source Folder文件,src下面的.Java文件都编译成了.class文件放入WEB-INF\classes文件夹下,xml文件也会被放在WEB-INF文件夹下。

上面只是个空的struts配置文件,主要是这个头文件是文本类别是

配置Action

struts2拦截到页面请求以后就会到struts.xml去查找对应的action处理请求。

新建包com.demo.action,新建类LoginAction.java,继承自com.opensymphony.xwork2.ActionSupport(也可以不必继承主要是为了方便)。

新建一个String属性message,生成setter和getter方法。

新建一个String方法execute()。还是上图方便。

展示页面

在项目的WebContent目录下新建index.jsp页面,页面内容如下:



注意:这个页面一定在WebContent下,不要写在WEB-INF下。

完善struts.xml

接下来就要把Action和展示页面配置到struts.xml中了。

启动测试

就项目放入tomcat中,启动tomcat,然后访问 http://localhost:8080/Struts2_DEMO/user/login

结果如下:

最新文章

  1. Ueditor百度网页编辑器开发者版java utf-8的使用
  2. activity管理
  3. 新版微耕软件(N3000)与旧版2000的实体功能区别
  4. 数据结构——动态链表(C++)
  5. Java集合中Set的常见问题及用法
  6. chrome://inspect 移动前端调试方案(Android + Chrome 实现远程调试)
  7. Core Text概述
  8. Eclipse hangs on loading workbench, eclipse停在启动界面的处理办法
  9. 《JAVA核心技术卷 卷1 基础知识》
  10. null值是不会算在count以内的
  11. java中main函数解析(转载)
  12. D - Specialized Four-Digit Numbers
  13. java应用程序远程登录linux并执行其命令(ssh jar包)
  14. BZOJ 3931: [CQOI2015]网络吞吐量( 最短路 + 最大流 )
  15. 实现文件下载的java代码
  16. Android性能优化:ViewStub
  17. Linux下查找某一文件常用的方式
  18. CORS:source,princple,implimentation in Spring
  19. C语法简单测试
  20. python 解析命令行

热门文章

  1. 自定义样式 dialog
  2. git 分支处理
  3. python学习笔记(7)——集合(set)
  4. CNN结构:可用于时序预测复合的DNN结构-AcGANs、误差编码网络 ENN
  5. canvas一周一练 -- canvas绘制马尾图案 (5)
  6. intellij idea console 乱码
  7. Swift mutating Equatable Hashable 待研究
  8. MFC_2.7 树控件的基本使用
  9. TWaver 3D作品Viewer查看器
  10. ubuntu root用户登陆