struts2访问JSP页面404的问题

本文探讨了在Struts2框架中,由于action标签中class属性对应类不存在导致的Dispatcher初始化失败问题。主要分析了错误原因,包括手误写错类名或提前配置struts.xml。介绍了Dispatcher的作用和初始化过程,以及当它初始化失败时如何影响jsp页面的显示。提供了三种解决方案:清空class属性、映射现有类或修改web.xml的url-pattern。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. action标签中class属性对应类不存在,原因可能是手误写错,或者还没开始写action就配置了struts.xml
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
    报错原因是web.xml中的过滤器过滤了所有请求。在创建Dispatcher,会读取 filterConfig 中的配置信息,将配置信息解析出来,封装成为一个Map,然后根绝servlet上下文和参数Map构造Dispatcher 。Dispatcher初始化,加载struts2的相关配置文件,将按照顺序逐一加载:default.properties,struts-default.xml,struts-plugin.xml,struts.xml。但是到核心配置文件的时候:
    在这里插入图片描述
    Dispatcher是struts2重要的类之一,这个类初始化失败,核心过滤器就很难正常工作,而jsp会被过滤掉,但因为该类初始化失败的缘故,jsp页面虽然被过滤但是转发不回来,所以404。
  • 解决办法:
    • class属性设置为空
    • 映射存在的类,不管实现具体方法没有,只要有类就可以
    • 将web.xml中的url-pattern改掉,让它不要过滤jsp
  1. 第三种解决方案不推荐,/*是struts的合理配置,让其过滤掉jsp,是又struts框架的具体考量的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值