首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pageContext.request.contextPath被解释为$%7BpageContext.request.contextPath%7D?

为什么pageContext.request.contextPath被解释为$%7BpageContext.request.contextPath%7D?
EN

Stack Overflow用户
提问于 2019-08-31 16:19:55
回答 3查看 739关注 0票数 0

我正在使用纯Java配置编写一个简单的基于REST的Spring MVC应用程序。我以前写过很多应用程序,从来没有遇到过这个问题。我的url <a href="${pageContext.request.contextPath}/test/hello">Hello</a>被解释为$%7BpageContext.request.contextPath%7D/test/hello

在研究过程中,我发现我需要在2.4+中设置web应用程序的版本,因为我正在编写一个纯java配置应用程序,我无法在web.xml中更改它。因此,我尝试将Dynamic Web Module更改为3.0(当前设置为2.3)。但是,因为很多人都遇到过这个问题,eclipse不允许我改变它。所以我在project.facet.core.xml中更改了它,但它没有解决url问题,而且我得到了一个新的错误“无法将项目facet Dynamic Web Module的版本更改为2.3”。我不明白的是,如果我在xml中将web模块版本手动设置为3.0,为什么eclipse要再次将其设置为2.3?

Ufff!很多问题我已经尝试了大约8个小时来解决这个问题,但没有任何成功,所以请在这个问题上的任何帮助是感激的!

jsp文件:

代码语言:javascript
复制
<html>
<body>
<h2>Hello World!</h2>
<a href="mavn_spring_rest_demo/test/hello">try it </a>
</body>
</html>

配置类:

代码语言:javascript
复制
```@EnableWebMvc
代码语言:javascript
复制
```public class MyConfig implements WebMvcConfigurer{
代码语言:javascript
复制
servlet initializer class:
```public class MyServletInitializerConfig extends  
代码语言:javascript
复制
    ```@Override
    ```protected Class<?>[] getServletConfigClasses() {
        ```return new Class[] { MyConfig.class };
    ```}
    ```@Override
    ```protected String[] getServletMappings() {
        ```return new String[] { "/" };
    ```}

rest controller:
```@RestController
代码语言:javascript
复制
```public class MyRestController {
代码语言:javascript
复制
```@GetMapping("/hello")
代码语言:javascript
复制
```public String sayHello() {
代码语言:javascript
复制
       return "hello finally";
代码语言:javascript
复制
```}
代码语言:javascript
复制
EN

回答 3

Stack Overflow用户

发布于 2020-07-16 17:12:02

你应该删除你的web.xml文件并重启你的本地服务器,我想你和我遵循相同的路线。我遇到这个问题是因为我有一个空的web.xml文件。我是一个新手,但是当只配置纯java类时,空的web.xml文件会妨碍我的工作。

试一试吧。

票数 2
EN

Stack Overflow用户

发布于 2021-01-27 21:48:01

当我在我的jsp文件中使用{pageContext.request.contextPath}时,我遇到了同样的问题,正如你所说的,问题是(web-app在2.3),我通过在web.xml中修改xml代码来解决这个问题。像这样

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
         version="3.1">
  <display-name>spring-rest-demo</display-name>
</web-app> 

您可以将此代码复制到web.xml文件中,

希望这是你的项目的工作

票数 0
EN

Stack Overflow用户

发布于 2021-07-27 04:29:36

只需在JSP文件的顶部添加以下jsp指令:

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

JSP指令用于向JSP容器发出特殊指令,以便将JSP转换为servlet代码。

https://www.guru99.com/jsp-actions.html上阅读有关JSP指令的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57736354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档