• 已删除用户
童话的爱
童话的爱
发布于 2022-08-26 / 286 阅读 / 0 评论 / 0 点赞

使用Maven创建JavaWeb时的一个坑:web.xml文件对JSP的支持问题

如果你是使用Maven 创建web 项目的话,你应该会选择这个archetype:

temptemp.png

使用它创建出来的项目为如下结构:

屏幕截图 20220826 202504.png

可以看到它为你自动生成了webapp目录,这是开发JavaWeb 项目所必须的。
但是其中它生成的WEB-INF文件夹下的web.xml文件却是错误的,其生成的web.xml文件内容如下

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

如果你需要用到JSP 技术进行网页开发,你会发现你的JSP 页面不能使用诸如${brands}这样的语法来显示Java 中的变量,它只会将其当做一个字符串输出:

error屏幕截图 20220826 202758.png

如果你也出现了此类错误,则很可能是你的web.xml配置出了问题,尝试将其内容替换为如下内容,或许可以解决${brand}变量无法显示的问题:

<!-- 只有这种是支持在jsp 页面中使用${} 来显示从Request 域传入的变量的-->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
</web-app>

如果仍旧不可以,或者有其他问题,可以在文章下留言,一起探讨探讨!


评论