【问题标题】:why pageContext.request.contextPath is treated as a string and not as classpath? [duplicate]为什么 pageContext.request.contextPath 被视为字符串而不是类路径? [复制]
【发布时间】:2020-10-07 06:00:46
【问题描述】:

因为我使用我的

<a href="${pageContext.request.contextPath}/rest/hello">Hello</a>

我的网址变成了

http://localhost:8080/spring-rest-demo/$%7BpageContext.request.contextPath%7D/rest/hello

为什么会这样

我的 pom 文件中也有 javax.servlet-api 和 javax.servlet.jsp-api 依赖项

它是一个jsp文件而不是html

【问题讨论】:

    标签: java spring spring-mvc jsp el


    【解决方案1】:

    像 ${pageContext.request.contextPath} 这样的表达式不能在纯 HTML 文件中使用,它们必须在 JSP 文件中使用。我建议你先阅读一些关于 Java servlet 和 JSP 的教程。

    你可以直接忽略它。

    如果您真的想将其重定向到另一个页面。因此,您需要添加JSTL Dependency 才能使用表达式语言。

    我推荐你使用Thymeleaf,它易于使用,你可以轻松玩控制器的

    【讨论】:

    【解决方案2】:

    首先,classpath 是完全不同的东西。您的意思是上下文路径

    您的类路径中似乎没有Expression Language (EL)。将此添加到您的依赖项中:

    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    

    这应该可以解决解决 ${pageContext.request.contextPath} 的问题。

    建议

    使用来自JSTLurl 标签。或者,来自 Spring Framework 的 url 标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2018-09-15
      • 2019-08-04
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      相关资源
      最近更新 更多