【8012】解决JSP脚本EL表达式不生效或web.xml中servlet语句web-app报错,如何更换web.xml版本

1 篇文章 0 订阅

【8012】解决MAVEN创建web项目下JSP脚本EL表达式不生效或web.xml中servlet语句web-app报错,如何更换web.xml版本

问题产生背景:

1.今天下午练习早上学习Servlet知识点去写web.xml配置请求的映射sevelet,web-app底下爆红,语法的都没有问题,最后问了老师,结果是低版本web.xml要求约束规范<servlet>与<servlet-mapping>要分开来写,idea自动生成都是的低版本的web.xml,可是这么写觉得好麻烦,感觉不舒服,赋值粘贴过来的servlet语句操作感极差(cv工程师表示认同),幸好高版本的web.xml支持了合在一起的写法,不知道是不是考虑这层方面的原因,嘿嘿,反正好用就完事了,就自己捣鼓捣鼓如何生成新版web.xml,和以前生成新模块差不多,写个博客分享一下;
2.这是第二次编辑,又遇到这个问题,问题产生是JSP脚本中的EL表达式不生效,原因就是pom.xml导入的servlet版本高,与低版本的web.xml不匹配,导致el表达式不生效,解决办法相同。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

具体实现步骤(二步骤)


方法一:
遵循低版本web.xml要求约束规范:<servlet>与<servlet-mapping>要分开来写
如:前面只写:<servlet>
后面只写:<servlet-mapping>


在这里插入图片描述
在这里插入图片描述


方法二:
删除第一步:(你也可以只删除web.xml,差不多,重要的是生成路径要写对)
打开Project项目,将WEB-INF包删除掉—>打开File,点击Project Structure…(Ctrl+ Alt+Shift+S)–>点击Modules,点击web包(你删的那个项目),最后点击减号-,删除以前存放的web.xml的路径。


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


添加第二步:
点击加号+,再点击1 web.xml–>修改安装路径和版本(他重新生成的路径可能不在webapp下,你需要手动修改一下)如:D:\XXX\main\webapp\WEB-INF\web.xml–>点击应用applay,点击OK即可

温馨提示:如果你添加后,Apply成灰色,没办法点击,这个时候你可以删除底下Web Resource Directories(Web资源目录),就可以点击Apply,然后在生成一个Web Resource Directories即可,关于这一点我觉得是安装的路径太长,idea进行比较,检测路径下文件都有,判断成不需要点击应用的,是检测的问题。


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


当然你也可以把整个web项目删掉,自己再创建一个也能一下子生成最新版的web.xml,不过后续需要移动一下web生成的位置(将默认的添加路径删除掉,再生成新的),如下:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:一定要注意自己的安装路径是否正确,还有如果也遇到无法Apply的情况,和上面第二步骤解决方法相同,就不重复写了。至于底下的黄色感叹号我安装了两个web,多余了,没给他分配资源,忽略即可。


在这里插入图片描述

原因分析:

1.文章开头也说了是idea自带生成的web.xml低版本问题,对于servlet位置规范有约束条件<servlet>与<servlet-mapping>要分开来写才行,应严格按照那种顺序添加节点,这是报错的根本原因。
2.我上述主讲的方法二可解决,但是也有点点麻烦,每次你去创建Web项目都需要去手动删除,至于想永久修改,只能去修改MAVEN的底层代码了,想去修改的可以去百度一下,反正我是不想该,我有逆骨,但是不多,这是MAVEN自己配置的问题。(实在不行就遵守方法1)
3.有问题欢迎底下评论,等写多Web项目看看需不需要去,以后再补充,嘿嘿!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值