#学习基于ActionSupport
本文基于搭建以及学习struts2.5版本
迷途知返:

  1. 不能选取struts2.5中的struts2-rest-plugin-6.jar会出现莫名错误

  2. 若是最初学习并搭建一个普通框架的话,在导入其资源包时,只需要导入最基本或者是必须的资源包,不然 额外的包在没有相应配置的情况下,会引发莫名的错误,至少现阶段难以排查。

  3. 若遇到filter类无法找到的情况,讲web.xml的 filter-class标签内修改为 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
    因为struts升级到2.5后 整合了补分类,而不再需要cn.filter这样的路径,精简成了filter

  4. 适用于大部分工程,请不要讲action类直接存放于SRC中,根据配置文件可能会出现ClassNotFoundException,所以建立一个包用于存放对应的类文件/其他文件是必要的

  5. 初步学习框架的时候,建议将所有组件都 配置成最新版本以避免出现不可名状错误(相信大公司),而且后续的版本不兼容问题,拿Eclipse来说,可以轻易检测出来,而且只需要搜索部件之间版本匹配关系,就可以解决。

Struts2基本点:
工作原理:
JAVAEE学习日志(2) SSH框架 Struts框架(1)
开发步骤:

  1. 定义发送Request的页面
  2. 定义Action类,处理Request
  3. 使用struts.xml配置Action(类似发布)
  4. 编辑视图(显示页面,如jsp)

PS:Action需要implements Action / extends ActionSupport

ActionSupport实现了execute方法,若不提供新的method,则在struts.xml的action标签内指定method=“execute” execute直接返回SUCCESS(String 常量)

StrutsPrepareAndExecuteFilter 为核心控制器
自定义Action 为业务控制器
两者共同构成Struts2的MVC的C—Control
(由StrutsPrepareAndExecuteFilter分配Request给指定Action,毕竟WEBXML内配置url-pattern是 /*)

Action获取请求参数 ?
该部可以类比于Servlet 不过原则上Action为了解耦而放弃ServletAPI(就是HttpServletRequest 等)

具体方式为:发起Request的页面的参数名 发送至Action后,Action对此一一创建Field,每个Filed都需要创建对应的setter与getter,随后使用Action实例来使用setter 以接受参数

当然只要是原则,就会有例外
ServletAPI也可以访问
有一下两种方法:
伪访问:ActionContext
JAVAEE学习日志(2) SSH框架 Struts框架(1)
真访问:ServletActionContext
JAVAEE学习日志(2) SSH框架 Struts框架(1)

相关文章:

  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2022-12-23
  • 2021-04-10
  • 2021-11-28
  • 2022-01-10
猜你喜欢
  • 2021-06-12
  • 2021-08-27
  • 2022-01-28
  • 2021-07-30
  • 2021-08-25
  • 2018-09-17
相关资源
相似解决方案