JavaEE学习笔记1-Struts 2 基础

概念

Struts是简单的Java后端框架,通过指定根Filter引入即可。

Eclipse配置

  • web.xml
  • struts.xml

web.xml

Filter标签指定/*路径由Struts代理。

structs.xml

位置:class路径下。Eclipse会将src下非java文件自动复制到class下。
配置constant,Action等。

实现Action

对action没有要求,但提供的Action接口是推荐的规范,其中定义了execute无参数方法,并要求所有属性的set、get操作。
Action 访问 Servlet 有三种方式。

  • 通过Struts封装的接口
  • Structs提供直接接口
  • Structs提供ServletActionContext类

配置Action

包和命名空间

  • <package>定义包,包中由Action,包可以指定命名空间。
  • Action对应的URL = 命名空间+Action名;
  • 命名空间为url路径形式。
  • “/”代表根路径。
  • 不设置命名空间代表默认明明空间。
  • 在当前命名空间找不到action时会在默认空间寻找。
  • 虽然url是多级的,但命名空间没有多级的概念,只是名字而已。

动态方法调用

  • control!login 会调用control Action 的login方法处理。
  • *Action 通配符,用{1}来代表通配变量调用方法。
  • 为了安全,增加AllowedMethod标签规定可以调用的方法。(老版本没有)

默认Action

可以设置。

Result 配置

Result 根据Action的结果链接视图,可以有多种type:

  • dipatcher 默认值,jsp页面
  • plaintext 不处理,当作字符串返回
  • redirect 重定向
  • redirectAction 重定向到action

动态Result

  1. 通配符{1}格式,与上面类似。
  2. 取Action的属性,OGNL表达式。Action的属性如果在类中没有定义,那么就是null。

异常处理

  1. 在struts中注册定义并注册异常拦截器。
  2. 在struts中配置全局和局部异常链接页面。

Convention

功能

  • 约定优于配置。
  • 自动寻找action(s)和struts下的aciton实现类或者Action后缀类,绑定URL。
  • 绑定的URL,包名为actions和struts后的剩余包路径,Action 名为类名,如果类名后缀为Action则去掉Action。

使用

  • 引入struts2-convention-plugin JAR包
  • 依赖 ASM 包
  • 目前为止所有需要的包如下:
  1. asm-7.1.jar
  2. asm-commons-7.1.jar
  3. asm-tree-7.1.jar
  4. commons-fileupload-1.3.3.jar
  5. commons-io-2.5.jar
  6. commons-lang3-3.6.jar
  7. freemarker-2.3.26-incubating.jar
  8. javassist-3.20.0-GA.jar
  9. log4j-api-2.9.1.jar
  10. ognl-3.1.15.jar
  11. struts2-config-browser-plugin-2.5.14.jar
  12. struts2-convention-plugin-2.5.14.jar
  13. struts2-core-2.5.14.jar

版本问题

  • 我使用Java 11,ASM要7.0以上才支持。struts要2.5.19
  • 不要把所有struts包都加进来,只用需要的就好,否则可能莫名其妙出错。
  • ASM 下载链接 https://mvnrepository.com/artifact/org.ow2.asm/asm/7.1
  • 导入的项目总是出错,还是要自己建立项目啊……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值