1.thymeleaf  页面修改后可能不会实时反馈到Web,做2步骤:

  1)禁用掉tymleaf 缓存:  spring.thymeleaf.cache=false

  2)IDE编辑器:Ctrl + F9  重新编译页面源码文件

2.if不为空判断:

string也又isEmpty()方法  详见文档

防止表单重复提交:重定向

自定义拦截器:

 /**
* 登陆检查,
*/
public class LoginHandlerInterceptor implements HandlerInterceptor {
//目标方法执行之前
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object user = request.getSession().getAttribute("loginUser");
if(user == null){
//未登陆,返回登陆页面
request.setAttribute("msg","没有权限请先登陆");
request.getRequestDispatcher("/index.html").forward(request,response);
return false;
}else{
//已登陆,放行请求
return true;
} } @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }
}

2.配置拦截器;

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
//@EnableWebMvc 不要接管SpringMVC
@Configuration
public class MyMvcConfig implements WebMvcConfigurer { /**
* 浏览器发送addViewTest请求,来到success页面
* 发请求到页面,就没有必要在Controller里写空方法了,直接来做视图映射
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// super.addViewControllers(registry);
//浏览器发送 /atguigu 请求来到 success
registry.addViewController("/atguigu").setViewName("success");
} //所有的WebMvcConfigurerAdapter组件都会一起起作用
@Bean //将组件注册在容器
public WebMvcConfigurer webMvcConfigurer(){
WebMvcConfigurer adapter = new WebMvcConfigurer() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
registry.addViewController("/main.html").setViewName("dashboard");
registry.addViewController("/cancleInvoice.html").setViewName("cancleInvoice");
registry.addViewController("/addInvoice.html").setViewName("add");
} //注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//super.addInterceptors(registry);
//静态资源; *.css , *.js,springMvc需要配置
//SpringBoot已经做好了静态资源映射,但是经检验,SpringBoot2.0.5得配置静态资源,可能是1.5版本不需要吧
registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/user/login","/static/**","/webjars/**","/asserts/**");
}
};
return adapter;
} @Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
} }

在html页面中判断是否有值,有的话则显示session中的友情提示

<span id="cardOpenStatus"  th:text="${session.cardInfo.message}" th:if="${not #strings.isEmpty(session.cardInfo.message)}"></span>

最新文章

  1. 浅谈SQL注入风险 - 一个Login拿下Server
  2. 《转载》Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
  3. wex5中的星星评分
  4. Codeforces 699D Fix a Tree 并查集
  5. iOS 常用的向上,向下取整, 四舍五入函数
  6. 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法
  7. 简单使用SQLite 的增删改查
  8. 【转载】改善数据质量从数据剖析(Data Profiling)开始
  9. oralce之存储过程
  10. What is Object Oriented Design? (OOD)
  11. sqlCacheDependency 更新缓存Cache
  12. jq选择器对象筛选
  13. Leetcode 12——Integer to Roman
  14. Linux IO 模型
  15. 面向面试编程代码片段之GC
  16. 前端 CSS语法
  17. Linux重要命令总结
  18. View的相关原理(读书笔记)
  19. 故障排错-ping dup!
  20. 如何做出一个更好的Machine Learning预测模型【转载】

热门文章

  1. mysql常用增删改查命令(纯纪录.orm用得基本功都没了。)
  2. js 錯誤
  3. 读取excel思路
  4. 一本通1546【NOIP2011】选择客栈
  5. Nginx REWRITE阶段
  6. 【POI每日题解 #9】SKA-Piggy Banks
  7. 洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
  8. 自学Zabbix12.1 Zabbix命令-zabbix_server
  9. 【BZOJ1880】[Sdoi2009]Elaxia的路线(最短路)
  10. history新增方法