controller 的各种操作都是依赖服务器启动后来注入很多功能的,所以热部署经常会没有效果(因为没有被注入,除非在 方法名() 的括号中定义对象 [ 例如:

HttpServletResponse response

] ,因为那样就在访问方法时传递注入了进来,不过即使用这种方式都容易出现没效果的问题,所以这种时候重启服务器即可),没有效果时重启服务器即可

1. 不要把一个 modelAndView 当成重定向的方式,因为它是用于指定视图的,如果要重定向到 .action结尾的 或者就是无后缀的controller,那么用 return String 的方式来重定向,

指定视图就用 modelAndView (通过测试发现: 直接 return String 的方式仍然停留在这个 controller 中,所以特殊场景下需要使用 response来实现重定向)

2. controller的类必须在创建后就先写上 @Controller 注解,否则会找不到这个 Controller

3. 使用 session 时,直接key和value都使用字符串值即可,在验证value时,直接用if来判断即可,如:

    @RequestMapping("/jsp/backstageManager/showFramework")
public ModelAndView showFramework() {
ModelAndView modelAndView = new ModelAndView("/jsp/backstageManager/backstage_framework.jsp");
if (!"true".equals(session.getAttribute("adminLoginStatus")) ){
System.out.println("没有 session ,跳转到 非法访问 页面");
modelAndView.setViewName("/html/error/UnauthorizedAccess.html");
}
return modelAndView;
}

controller非常容易出现空指针异常,特别是所有跟request有关的操作,

如下图, @Autowired 有时都注入不成功,所以这种情况下需要在方法里单独传入request,这样就可以成功实现了

使用idea进行热部署访问或者正常访问项目时,可能会因为路径问题访问错误但是却不显示错误,这种情况下连Controller都进不了(这里少了个项目目录)

idea热部署情况下更新controller后出现莫名其妙的错误的解决方案

在idea热部署的情况下,刚写好的mailservice出现了错误,发现重启服务器后解决了,可能是资源并没有完成同步的原因,所以这种情况以后可以直接重启服务器,不需要debug

springmvc controller常见问题的更多相关文章

  1. [转]SpringMVC Controller介绍及常用注解

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...

  2. SpringMVC Controller介绍

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  3. SpringMVC Controller 介绍

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...

  4. springmvc controller junit 测试

    第一次搭建SSM框架,整合SpringMVC完成后进行Controller测试,找资料并解决问题. 下图是我的完整目录: 1 建立UserController类 代码清单 1-1:UserContro ...

  5. SpringMVC Controller介绍(转)

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  6. SpringMVC Controller详解

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  7. SpringMVC Controller接收参数总结

    本文中Controller的开发环境如下表格所示,Maven对应POM配置如下代码段所示: 系统/工具 版本号OS Windows 7 Home BasicJava 1.7.0_79Eclipse M ...

  8. SpringMVC Controller 返回值几种类型

    SpringMVC Controller 返回值几种类型 2016年06月21日 19:31:14 为who而生 阅读数:4189 标签: Controller 返回值类型spring mvc 更多 ...

  9. SpringMVC Controller单例和多例

    对于SpringMVC Controller单例和多例,下面举了个例子说明下. 第一次:类是多例,一个普通属性和一个静态属性. 结果:普通属性:0.............静态属性:0 普通属性:0. ...

随机推荐

  1. PHP面试系列 之Linux(六)---- 面试题整理

    1.shell命令 top:查看有哪些系统进程正在运行.该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用情况.该命令可以按照对CPU.内存使用和执行时间对系统任务进程进行 ...

  2. JDK(四)JDK1.8源码分析【排序】DualPivotQuicksort

    本文转载自于晓飞93,原文链接 DualPivotQuickSort 双轴快速排序 源码 笔记 DualPivotQuicksort是Arrays类中提供的给基本类型的数据排序的算法.它针对每种基本数 ...

  3. 【luogu P1608 路径统计】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1608 补上一发最短路计数! 感谢王强qwqqqq @Lance1ot #include <queue& ...

  4. HDU 1233 还是畅通工程(Kruskal算法)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)   ...

  5. 创建ASM实例及ASM数据库(转载)

    --======================== -- 创建ASM实例及ASM数据库 --======================== 一.ASM相关概念 1.什么是ASM(Auto Stor ...

  6. oracle基础教程oracle客户端详解

    oracle基础教程oracle客户端工具详解 参考网址:http://www.oraclejsq.com/article/010100114.html 该教程介绍了oracle自带客户端sqlplu ...

  7. Oracle数据库对表基本的操作--增删查改

    --向student表中加入入学时间属性,其数据类型为日期型alter table student add scome date; --删除student表中的入学时间属性alter table st ...

  8. 百度地图中找不到BMap的解决

    一般情况下是引用的问题,产生的原因大概有两种 1.不同架构的引用方式不同,引用js的方式不同导致 2.自身调用顺序有误 官方的引用方式是使用标签引入,示例 <script type=" ...

  9. vue中的slot(插槽)

    vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...

  10. angular4 防二次重复点击

    监听click事件, 默认三秒钟内的点击事件触发第一次的点击事件,也可以通过throttleTime自定义时间 只触发第一次 /** * <div (throttleClick)="g ...