- 浏览: 68348 次
最新评论
文章列表
使用HttpMessageConverter<T>将请求信息转换并绑定到处理方法的入参中
或将响应结果转换为对应类型的响应信息,Spring提供两种途径:
-使用@RequestBody/@ResponseBody对处理方法进行标注
-使用HttpEntity<T>/ResponseEntity<T>作为处理方法的入参或返回值
当控制器处理方法使用到@RequestBody/@ResponseBody或HttpEntity<T>/ResponseEntity<T>
spring首先会根据请求头或响应头的Accept ...
错误信息显示及全球化
- 博客分类:
- SpringMVC
1)每个属性在数据绑定和数据校验发生错误时,都会生成一个对应的FieldError对象
2)当属性校验失败后,校验框架会为该属性生成4个消息代码,
这些代码以校验注解类名为前缀,结合modleAttribute、属性名及属性类型名生成多个
对应的消息代码:例如User类中的password属性使用@Pattern注解,当该值不满足@Pattern所定义的规则时
产生以下4个错误代码
-Pattern.user.password
-Pattern.password
-Pattern.java.lang.String
-Pattern
3)当使用springmvc标签显示错误消 ...
数据绑定流程
1.mvc主框架将ServletRequest对象及目标方法入参实例传递给WebDataBinderFactory实例
以创建DataBinder实例对象
2.DataBinder调用装配在Springmvc上下文中的ConversionService组件进行数据类型转换。
数据格式化工作。将Servlet中的请求信息填充到入参对象中
3.调用Validate组件对已经绑定的请求消息入参对象进行数据合法性校验,并最终生成数据绑定
结果BindingData对象
4.Springmvc抽取BindingResult中入参对象和校验错误对象,将它们赋给处理方法的响应入参 ...
Restful风格的curd
package com.hous.crud.bean;
public class Department {
private Integer id;
private String departmentName;
public Department() {
// TODO Auto-generated constructor stub
}
public Department(int i, String string) {
this.id = i;
this.departmentName = string ...
jstl的国际化,自定义视图和重定向
- 博客分类:
- SpringMVC
视图解析器
JSTLView视图
若项目中使用了JSTL,则SpringMVC会自动把视图由InternalResourceView转为JSTLView视图
若使用JSTL的fmt标签则需要在SpringMVC的配置文件中配置国际化资源文件
i18n.username=UserName
i18n.password=Password
i18n.username=用户名
i18n.password=密码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns ...
ModelAttribute的使用
- 博客分类:
- SpringMVC
ModelAttribute的使用
SessionAttribute注解的value包含对应的key,则会从HttpSession中获取key的value值,否则抛出异常
package com.hous.springmvc.controller;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annot ...
处理模型数据
Springmvc提供四种输出模型数据,分别是
-ModelAndView:处理方法返回值类型为ModelAndView时,方法体可以通过该对象添加模型数据
-Map和Model:入参为org.springframework.ui.Model、org.springframework.ui.ModelMap或java.util.Map和Model:入参为org
时,处理方法返回时,Map中的数据会自动添加到模型中
-@SessionAttribute:将模型中的某个属性暂存到HttpSession中,以便多个请求可以共享这个属性
-@ModelAttribute:方法 ...
绑定pojo对象及ServletAPI相关
package com.hous.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.io.IOException;
import java.io.Writer;
import javax.servlet.http.HttpServletRequest;
import javax. ...
Request请求相关
- 博客分类:
- SpringMVC
Request请求相关
package com.hous.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
impo ...
关于时间的总结,长姿势了
1)2013-06-07T09:34:54.317+08:00 这事什么时间格式?2013-06-07 日期T: TIME 时间09:34:54.317 早上九点三十四分54.317秒+08:00 格林威治标准时间加八小时 也就是北京时间
2)java中用SimpleDateFormat 怎么把 2015-04-20T11:12:00.0+08:00 解析成 DateAPI 中只有 yyyy-MM-dd'T'HH:mm:ss.SSSZ 只能转换 2015-04-20T11:12:00.0+0800 ,若最后面的是 08:00 这个将SSSZ改为SSSX ...
RequestMapping的使用
- 博客分类:
- SpringMVC
RequestMapping的使用
1)@RequestMapping除了修饰方法,还可以修饰类
2)
@RequestMapping的value,method,params和heads分别表示请求URL,请求方法,请求参数以及请求头
的映射条件,他们之间是与的关系,联合使用多个条件可以让请求映射更加精确化
params和headers支持简单的表达式
--param1:表示请求必须包含名为param1的请求参数
--!param1:表示请求不能包含名为param1的请求参数
--param1!=value1:表示请求包含名为param1的请求参数,但值不能为value1
- ...
@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
下面来一个简单的HelloWorld
第一步:添加需要的jar包
第二步:在web.xml中配置DispatchServlet前端控制器
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance ...
Spring对事务的处理
Spring支持的7钟事务传播属性
传播属性
描述
PROPAGATION_REQUIRED
如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事务,并在自己的事务中运行
PROPAGATION_REQUIRES_NEW
当前的 ...
JdbcTemplate的使用
- 博客分类:
- Spring开发
JdbcTemplate的使用
JdbcTemplate和NamedParameterJdbcTemplate
package com.hous.test;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.junit.Ignore;
import org.junit.Te ...
五种通知
使用AspectJ注解声明切面
1)需要在spring IoC容器中将AspectJ切面声明为bean实例。
当Spring IOC容器初始化AspectJ切面后,spring IOC容器会为
AspectJ切面匹配的bean创建代理
2)在AspectJ注解中,切面是一个带有@Aspect注解的java类
3)通知是标识某种注解的简单Java方法
5中类型的通知注解
@Before前置通知,在方法执行之前执行
@After后置通知,在方法执行之后执行
@AfterRunning返回通知,在方法返回结果后执行
@AfterThrowing异常通知,在方法抛出 ...