web.xml文件中welcome-file-list标签不起作用的问题解决方案

问题:今天使用Maven构建SSM项目时,由于首页要显示数据,于是我在web.xml中welcome-file-list中设置了如下代码:

	<welcome-file-list>
        <welcome-file>/news/index.html</welcome-file>
    </welcome-file-list>

这个news/index.html是一个controller中的Mapper映射的action,贴一下代码
代码如下:

//已删除无关代码,仅看两个RequestMapping注解即可。
@Controller
@RequestMapping("/news")
public class IndexController {

    @RequestMapping("/index.html")
    public String index(Model model){
        return "index";
    }
}

正常来说应该是可以访问到的,结果不管怎么重新部署,清除缓存,都一直报404!

于是我在百度查找了一下Web项目中web.xml运行原理:会按照welcome-file-list中写的文件,一个去检查是否web目录下面存在这个文件,如果存在,则跳转到该页;如果不存在,则无法找到。所以一般welcome-file-list中写的是存在的jsp或html文件。但是也可以指定一个存在的action,解决方案下面叙述。

解决方案:其实很好解决,只要让上面标签中的/news/index.html存在即可了,但是这样需要创建一个news目录,所以我的解决方案是如下,各位参考一下,按照自己思路解决即可!

  1. 修改web.xml文件中的welcome-file-list标签中的值
	<welcome-file-list>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>
  1. wwwroot/web(对应myeclipse/idea)根目录创建个index.jsp文件
  2. 在新建的index.jsp文件中写一行代码
<jsp:forward page="/news/index.html"/>

重新执行项目,执行成功!

解释一下原理:其实就是让进入到index.jsp页面,然后通过标签重定向到对应的action。

结语:对于原理的不懂导致出现的问题,已解决!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值