使用${pageContext.request.contextPath}时无法解析而乱码的解决

本文介绍了在使用${pageContext.request.contextPath}

问题

可以看到${pageContext.request.contextPath}没有正确获取路径而是出现了乱码
在这里插入图片描述

解决

出现这个问题一种情况是没有导入servlet和jsp的jar,所以我们需要导入servelt和jsp的jar。另外一种情况是web.xml文件中的web-app版本过低导致,只有2.4及以上版本才可以正确显示,以下给出了对应情况的解决方法,判断自己是哪一种情况,然后解决即可。

servlet和jsp的依赖

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>

web.xml文件的头

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

</web-app>
代码运行效果与预期不一致: package com.example.goodbook.controller; import com.example.goodbook.entity.Cart; import com.example.goodbook.service.CartService; import com.example.goodbook.service.impl.CartServiceImpl; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequestMapping("/cart") public class CartController { // 注入服务 private final CartService service = new CartServiceImpl(); // 查询用户购物车 @GetMapping("/{userId}") @ResponseBody public List<Cart> list(@PathVariable("userId") int userId) { return service.listByUser(userId); } // 添加购物车 @PostMapping("/add") @ResponseBody public String add(Cart cart) { service.addToCart(cart); return "添加成功"; } // 更新数量 @PostMapping("/update") @ResponseBody public String update(Cart cart) { service.updateCart(cart); return "更新成功"; } // 删除购物车项 @DeleteMapping("/{id}") @ResponseBody public String delete(@PathVariable("id") int id) { service.removeFromCart(id); return "删除成功"; } // 跳转到添加页面 @GetMapping("/addPage") public String addPage() { return "cart/cart-add"; } // 我的购物车页面 @GetMapping("/my") public String myCart(@RequestParam int userId, Model model) { model.addAttribute("cartList", service.listByUser(userId)); return "cart/cart-list"; } } http://localhost:8080/goodbook_war/cart/addPage 输入数据后,提交成功,跳转页面显示???? 前端代码如下: <%@ page contentType="text/html;charset=UTF-8" %> <html> <head><title>添加到购物车</title></head> <body> <h2>添加到购物车</h2> <form method="post" action="${pageContext.request.contextPath}/cart/add" accept-charset="UTF-8"> 用户ID:<input type="text" name="userId" required><br/> 图书ID:<input type="text" name="bookId" required><br/> 数量:<input type="number" name="quantity" value="1" min="1"><br/> <button type="submit">添加</button> </form> <a href="${pageContext.request.contextPath}/cart/my?userId=1">查看我的购物车</a> </body> </html>
最新发布
09-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值