SSM框架搭建遇见的问题

  1. 页面访问不到controller里的URL
    Request method ‘POST’ not supported
    controller中新增一个方法,并为其设置URL,但页面始终无脑的不能访问到,带参数时不可以访问到,不带参数可以访问到
    解决:新建方法后,添加@RequestMapping(value = “save”,method = RequestMethod.POST)注解,需要跟上一个方法间隔一行,它就能读到,然后把换行删掉后,依然能访问到,这么无脑的问题。。。
    原因:采用springMVC断点执行,查出当后台采用实体作为接收值时,参数的值类型弄错了,但MVC没有正确报出错误
    最终解决:
    第一步:查看PageNotFound是否存在对应的类(这一步其实一出现我就查看是没有的),怎么验证它是否存在呢?很简单:在代码中输入它看是否有对应的引用包。

第二步:第一步最直接的入口失败,于是想到了SpringMVC的核心Servlet:DispatcherServlet, 而它的核心方法则是:doDispatch,于是在方法中进行断点调试找到出错原因。经过调试后,终于发现问题所在,发现在解析json是实体的属性出错,如下图:
dispatcherservlet类中断点执行

2、找不到文件

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

解决:在pom.xml文件中添加依赖
 <dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>${jackson.version}</version>
</dependency>
3、springmvc添加拦截器后,java.lang.StackOverflowError
java.net.PlainSocketImpl.getInetAddress(PlainSocketImpl.java:106)

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setCharacterEncoding(“utf-8”);
if(request.getSession() == null ||request.getSession().getAttribute(“user”) == null){
System.out.println(“执行到了拦截器方法”);
request.getRequestDispatcher(“save”).forward(request,response);
return false;
}
System.out.println(“执行到了preHandle方法”);
return true;
}

原因:在拦截器preHandle方法中,未通过验证,又重新跳入到这个页面,造成死循环
解决方案:将页面跳转换成login页面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值