今天做ssm项目时遇到了这种错误

看看代码:

  无关代码省略。。。
22 <body>
23 <div id="container">
24 <iframe id="header" src="${pageContext.request.contextPath }/header.jsp" width="980" height="136" frameborder="0" scrolling="no"></iframe>
25 <div id="main">
26 <div class="cat">
27 <%
28 List<Category> pcategories = (List<Category>)session.getAttribute("pcategories");
29 if(pcategories==null){
30 response.sendRedirect("categoryController/getParentCategoryId");
31 return;
32 }
33 for(int i = 0 ; i < pcategories.size() ; i ++){
34 Category pcategory = pcategories.get(i);
35 %>
36 <ul>
37 <h1><%=pcategory.getName() %></h1>
38 <%
39 Set<Category> ccategories = pcategory.getcCategory();
40 for(Category child : ccategories){
41 %>
42 <li><a href='${pageContext.request.contextPath }/info.jsp'><%=child.getName() %></a></li>
43 <%
44 }
45 %>
46 </ul>
47 <%
48 }
49 %>
50 无关代码省略了。。。
68 <%
69 List<Product> products = (List<Product>)session.getAttribute("products");
70 if(products==null){
71 response.sendRedirect("productController/getImageById");
72 return;
73 }
74 for(int k = 0 ; k < products.size() ; k++){
75 Product product = products.get(k);
76 /* Iterator<ImageDTO> imagesIter = dto.getImagesDTO().iterator(); */
77 Set<Image> images = (Set<Image>) product.getImages();
78 for(Image image : images){
79 %>
80 <dl>
81 <dt>
82 <img src="${pageContext.request.contextPath }/upload/<%=image.getUrl() %>" alt="alt" width="90" height="90" />
83 </dt>
84 <dd>
85 <a href="${pageContext.request.contextPath }/infoController/getProductInfo?productIdStr=<%=image.getProductId() %>"><%=product.getName() %></a>
86 </dd>
87 </dl>
88 <%
89 }
90 %>
91 <%
92 }
93 %>
94
133 </body>
134 </html>

上面红色部分就是重定向的代码,跑上面代码就报404,百度了几个小时,没找出解决方案,后来自己仔细想一想,确定是重定向的路径错误。

于是一开始做了以下修改:

if(pcategories==null){
  response.sendRedirect("${pageContext.request.contextPath }/categoryController/getParentCategoryId");
  return;
}

无脑加上${pageContext.request.contextPath }(@_@原谅我的新手。。。)

发现还是报错。。。

又百度了一堆还是没解决,自己又再想想,思路没错,应该是写法出错,嗯,是这样!

果然,做了以下修改后就正确了

if(products==null){
  response.sendRedirect(request.getContextPath()+"/productController/getImageById");
  return;
}

jsp页面重定向后地址栏controller名重复而导致报404错误的更多相关文章

  1. Eclipse配置tomcat后,启动tomcat,访问tomcat报404错误

    当你在Eclipse中新建一个工程,配置好tomcat,然后测试tomcat是否配置成功的时候,报404错误异常. 解决方法: 1,把工程文件删除,重新建立一个新的工程, 2,新建一个工程. 3,Ne ...

  2. JSP-Runoob:JSP 页面重定向

    ylbtech-JSP-Runoob:JSP 页面重定向 1.返回顶部 1. JSP 页面重定向 当需要将文档移动到一个新的位置时,就需要使用JSP重定向了. 最简单的重定向方式就是使用respons ...

  3. springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误。

    springMVC配置时,静态资源和jsp文件路径没错但是访问时controller的请求报404错误. 1.场景 如果在web.xml中servlet-mapping的url-pattern设置的是 ...

  4. <mvc:default-servlet-handler/>导致controller失效,报404错误

    最近在做ssm框架整合的一个小项目时,页面跳转一直有404错误,也没有报错提示.然后一步一步去找,终于发现是<mvc:default-servlet-handler/>的原因.如下图所示, ...

  5. 在ubuntu上面安装phpmyadmin后,报404错误

    安装完mysql后,我想装一个phpmyadmin方便mysql管理. 在终端执行命令:sudo apt-get install libapache2-mod-auth-mysql phpmyadmi ...

  6. IntelliJ IDEA 文件夹重命名--解决重命名后js文件引用找不到路径报404错误

    情景: 说明:ExtJS是我后来的改的名字--原来叫extjs,可是当我把在页面的引用地址改为 src="ExtJS/.."后页面就报404错误,我把它改回之前的extjs就可以( ...

  7. tomcat第一次使用正常启动后访问8080端口报404错误

    问题:tomcat第一次使用正常启动后访问8080端口报404错误 解决办法:双击tomcat调出tomcat的xml文件页面,Server Locations 默认是选第一行即Use Workspa ...

  8. Vue项目build打包部署到Tomcat后,刷新报404错误解决方案

    问题描述: 一.更新依赖,并打包项目 cd /root/.jenkins/workspace/v-test;npm installcd /root/.jenkins/workspace/v-test; ...

  9. 前端jsp页面script引入url项目名使用${appName}

    <script src="/${appName}/commons/jslib/CommonValue.js"></script> 新建一个com.autum ...

随机推荐

  1. 鲜衣怒马散尽千金,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask钱包区块链虚拟货币三方支付功能

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_219 不得不承认,大多数人并不拥有或者曾经拥有加密货币.是的,Web3.0.加密货币.区块链,对于大多数的互联网用户来说,其实是一 ...

  2. 基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_170 2020年,"非著名Web框架"–Ruby on Rails已经15岁了.在今年,Rails 6.0趋于 ...

  3. Quicker程序实用及获取

    -- 仅代表个人见解 --官方网站:https://getquicker.net/主界面截图   桌面图标截图   3分钟快速体验Quicker  https://getquicker.net/KC/ ...

  4. 故障案例 | 主从复制环境中tokudb引擎报错排查过程

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 0 ...

  5. 从零开始Blazor Server(9)--修改Layout

    目前我们的MainLayout还是默认的,这里我们需要修改为BootstrapBlazor的Layout,并且处理一下菜单. 修改MainLayout BootstrapBlazor已经自带了一个La ...

  6. Mybatis完整版详解

    一.简介 1.什么是MyBatis MyBatis 是一款优秀的持久层框架 它支持自定义 SQL.存储过程以及高级映射. MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作 ...

  7. 透过inode来理解硬链接和软链接

    什么是inode? 每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括: 对应的文件 文件字节数 文件数据块的位置 文件的inode号码 文件的硬链接数 文件的读写权限 文件的时 ...

  8. 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况

    1.   安装JMeter及使用 1.1下载JMeter 登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi 1.2配置环境变 ...

  9. [CF1537E] Erase and Extend (字符串)

    题面 给一个长度为 n \tt n n 的字符串,你可以进行无限次以下两种操作之一: 删去末尾的字符(此时要保证删去后字符串非空). 把当前整个字符串复制一份,接到自己的后面. 输出最终通过操作能达到 ...

  10. C# winfrom ListView控件实现自由设置每一行字体及背景色等

    背景:公司经常会需要将日志信息,输出到一个对话框中显示出来.之前一直采用的listbox控件,操作简单,使用方便,但是遗憾的是,不能自由控制每一行的状态. 于是想了如下几个方案: (1)重绘listb ...