springmvc 拦截器、国际化、验证
时间:2022-05-04
本文章向大家介绍springmvc 拦截器、国际化、验证,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
springmvc 拦截器
继承了HandlerIntercepter的类可以作为拦截器类:
package com.yawn.intercepter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class UserIntercepter implements HandlerInterceptor {
// 最后执行的方法,释放资源
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object object, Exception exception)
throws Exception {
System.out.println("afterCompletion------->>>>>>>>");
}
// controller 执行完,生成视图之前的动作
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object object,
ModelAndView modelAndView) throws Exception {
System.out.println("postHandle------->>>>>>>>");
}
// controller 执行之前的动作
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object object) throws Exception {
System.out.println("preHandle------->>>>>>>>");
return true;
}
}
拦截器的配置:
<!-- 拦截器栈的配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/start.do" />
<bean class="com.yawn.intercepter.UserIntercepter"></bean>
</mvc:interceptor>
<!-- 可定义多个拦截器,形成拦截器栈 -->
<!-- <mvc:interceptor> -->
<!-- <mvc:mapping path=""/> -->
<!-- <bean></bean> -->
<!-- </mvc:interceptor> -->
</mvc:interceptors>
springmvc 国际化
在classpath下简历message.properties、message_ch_CN.properties、message_en_US.properties
然后进行如下配置,就可以在jsp中使用<spring:message code="welcome"/>来访问了 :
<!-- 国际化的配置 -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message"></property>
<!-- 在classpath下搜索message.properties文件 -->
</bean>
springmvc 验证
package com.yawn.controller;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yawn.po.User;
@Controller
public class TestController {
@RequestMapping(value="/start")
private String start(@Valid User user, BindingResult result) {
/*
* 1.在User前添加@valid注解后,可自动根据User类中的规则对各个字段进行验证
*
* 2.表单的验证信息都封装在result中,如果有错误,则可以从中获得错误的信息,将它返回给页面模型
*/
if (result.hasErrors()) {
return "index";
}
System.out.println(">>>>>>>>>>>>>>>>>>-------");
return "start";
}
}
- array_shift() 函数
- 可穿戴设备:不要纠结“可穿戴”
- RXTX for JAVA 串口通信
- Java集合源码分析(一)ArrayList
- 运行jar包找不到主类
- spring cloud 学习(7) - 生产环境如何不停机热发布?
- jupyter notebook 在mac OS上的安装
- Hadoop(七)HDFS容错机制详解
- java一些常用并发工具示例
- 机器人来“抢工作”了,瑞典人为何能淡定处之
- 线性代数01 线性的大脑
- spring cloud 学习(10) - 利用springfox集成swagger
- Hadoop(六)之HDFS的存储原理(运行原理)
- Blockchain Global CEO Sam Lee:以大数据为基础,区块链技术加快决策生成速度
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 猿实战20——商品发布之sku与笛卡尔乘积的那些事儿
- 浅谈Android单元测试的作用以及简单示例
- linux上传并配置jdk和tomcat的教程详解
- Android SQLite事务处理结合Listview列表显示功能示例
- Android开发之如何自定义数字键盘详解
- 在Android上实现HttpServer的示例代码
- Linux /etc/network/interfaces配置接口方法
- Android中Service和Activity相互通信示例代码
- Android编程实现定时发短信功能示例
- Android实现新浪微博一键分享的实例代码
- Android实现常见的验证码输入框实例代码
- Android实现加载状态视图切换效果
- Retrofit + OkHttp缓存处理的示例代码
- Android图片实现压缩处理的实例代码
- Windows10安装linux子系统的两种方式(图文详解)