struts2入门教学

简介: struts2入门教学

首先介绍一下struts2使用的基本步骤:


1.导入相关的 jar 文件


2.需要在 web.xml 文件中配置一个 StrutsPrepareAndExecuteFilter(只有配置了它才可以使用 struts2 框架)


3.struts.xml 配置


4.创建 Action 来完成逻辑操作


如何导入jar文件?

微信图片_20221110140446.png

web.xml 文件中配置一个 StrutsPrepareAndExecuteFilter

微信图片_20221110140521.png

struts.xml 配置

C

微信图片_20221110140557.png


Action的创建方式


1.一个普通类,不用实现任何接口 ,也不需要继承任何类


优点:无耦合

缺点:所有的功能都要自己完成


2.实现Action接口


在 Action 接口中定义了五个常量,一个 execute 方法(如果没有配置访问的方法,默认执行这个方法)。


五个常量:它们是默认的五个结果视图<result name=””>:


ERROR : 错误视图


INPUT: 它是 struts2 框架中 interceptor 中发现问题后会访问的一个视图


LOGIN:它是一个登录视图,可以在权限操作中使用


NONE:它代表的是 null,什么都不做(也不会做跳转操作)


SUCCESS:这是一个成功视图


优点:耦合度低


缺点:还是需要自己来完成功能


3.继承ActionSupport类(这个类也实现了Action接口)


优点:具有丰富的功能,例如 表单校验 错误信息设置 国际化

缺点:耦合度高


如何在struts中获取请求的数据?


主要有两种方式:


1.属性驱动


a.直接在 action 类中提供与请求参数匹配属性,提供 get/set 方法

微信图片_20221110140704.png

b.在 action 类中创始一个 javaBean,对其提供 get/set ,在请求时页面上要进行修改,

例如 user.username user.password ,要使用 ognl 表达式

微信图片_20221110140741.png

以上两种方式的优缺点:


第一种:比较简单,但是封装数据时比较麻烦


第二种:不需要在直接将值给javaBean过程,因为直接将数据封装到了javaBean


中。兼容性差,因为它要求在页面上必须使用 ognl 表达式,就存在页面不通用问题。


2.模型驱动


步骤:


1.让 Action 类要实现一个指定接口 ModelDriven


2.实例化模型对象(就是要 new 出来 javaBean)


3.重写 getModel 方法将实例化的模型返回。

微信图片_20221110140812.png

补充:result标签中的type属性的可选值,这些值在struts-default.xml有配置

微信图片_20221110140854.png

默认值是  dispatcher 它代表的是请求转发,针对于 jsp 页面

               redirect 它代表的是重定向 ,针对于 jsp 页面

               chain 它类似于请示转发,只不过它是针对于 action 跳转

               redirectAction 它类似于重定向 ,针对于 action



相关文章
|
Java Linux Shell
使用Nexus搭建Maven私有仓库(私服)
作为一个非常优秀且我找不到合适的替代品的二进制包储存库,功能也是非常强大,不单纯只能设置Maven私有仓库。
1425 0
|
JavaScript 关系型数据库 MySQL
nodejs链接mysql
nodejs链接mysql
|
XML IDE C++
REDHAWK——连接(续)(一)
REDHAWK——连接(续)(一)
198 0
|
存储 消息中间件 设计模式
计算机网络——应用层(1)
计算机网络——应用层(1)
|
机器学习/深度学习 数据采集 PyTorch
图片风格自动分析模型
图片风格自动分析模型
777 0
|
存储 JSON Linux
GIS开发:Vector tiles切片工具
GIS开发:Vector tiles切片工具
656 0
|
前端开发 JavaScript 测试技术
基于SSM+VUE实现毕业设计流程管理系统
基于SSM+VUE实现毕业设计流程管理系统
175 0
ztree 设置父节点不能选择
ztree 设置父节点不能选择
254 0
|
JavaScript 前端开发 程序员
VSCode实用插件集锦
VSCode实用插件集锦
417 0
|
开发者 Python
装饰器高级使用(了解)
装饰器高级使用(了解)
装饰器高级使用(了解)