【一】Spring应用
Spring 支持json格式的jar
jackson-all-1.7.3 http://jackson.codehaus.org/
Spring MVC 3.x annotated controller的几点心得体会
(最优化使用http://www.javaeye.com/topic/828513)
一、callback回调
template method(模板方法设计模式)-hibernateTemplate
二、JPA2.0的配置
src/META-INF/persistence.xml
webContent/META-INF/context.xml
webContent/WEB-INF/applicationContext.xml
三、Hibernate配置
【二】spring3.0.5与hibernate3.6.1(JPA2.0)整合
【三】springMVC使用
Spring MVC核心 流程示意图
Dispatcher Servlet --front controller前端总控制器
Controller --应用开发的控制器,实现controller接口,
Handler Mapping --控制器的映射,控制controller策略
ViewResolver & View --视图策略,View是试图预处理
InternalResourceViewResolver --jsp和jstl的解析器,
Interceptors :拦截器
LocalResolver :国际化
Validate :验证
ClassNameHandlerMapping 类名控制器--按类名匹配的abc.test的AbcController
BeanNameUrlHandlerMapping <bean name="/to_add.test" class=""/>
--------------------------------基于注解的MVC
基于注解的SpringMVC
一、@Controller -类上
@RequestMapping --修饰两种类型:方法上 和 类上
(1)类级别上:表示首先定义了相对的父路径,那么在方法上定义的路径是相对于类级别上的。
(2)方法上:如果类级别没有RequestMapping映射,则相对于应用,如果类级别有,则是相对于
类级别的注解的路径
二、路径变量:restful风格 --PathVariable
http://localhost:8080/@mvc/test/start/zhangsan.do --请求的参数作为url的一部分来存在
http://localhost:8080/@mvc/test/start/lisi.do
@RequestMapping("/start/{name}/{age}")
public String start(@PathVariable("name") String name,@PathVariable("age") int
nianling){ //此处name与上面的name一致,
}
//此处注意:java编辑的debug模式 和release模式
三、根据不同的请求方法(POST/GET),映射到不同的处理方法
@RequestMapping(value="/start",method=RequestMethod.GET)
public String PostStart(){ /
}
@RequestMapping(value="/start",method=RequestMethod.POST)
public String start(){ /
}
四、数据绑定,注解中的实现
@RequestMapping(value="/{test}",method=RequestMethod.GET)
public String start(){ /
}
@Initbinder --初始化绑定器标注
public void initbinder(WebRequestDataBinder binder,HttpServletRequest request){
binder.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat
("yyyy-MM-dd"),false));
}
五、处理请求的方法,接收的参数和返回的参数
1.接收的参数:数量与顺序没有要求
=
(1)没有参数()
(2)(@Pathvariable anyType)
(3)(request,response,session,)
//session的前提,当前请求session可用。
(4)request参数@RequestParam anyType //--?id=45参数,通过类型转换器转换
(5)@CookieValue anyType CookieName //cookie值取出,通过类型转换
(6)@RequestHeader("user-Agent") AnyType abc --从请求的头部中取出正确的值,例如(user-
Agent,content etc)
(7)经常调用out = response.getWriter()
@RequestMapping
public void testAllArguments(PrintWriter out){
//out = response.getWriter();
- out.println();
}
(8) 可以是Map
public ModelAndView test(Map model){
//返回modelandview
model.put("","");
return new ModelAndView("viewName");
}
(9)表单参数生成bean 注入
public String test(User user,BindingResult result)
//user自动为command对象,直接注入,此处要进行数据绑定的处理(进行绑定器)
//BindingResult -- 处理错误绑定信息,判断是否绑定错误信息,进行处理,与数据验证有关
2.返回值类型