现在的位置: 首页 > 综合 > 正文

Spring mvc 3.0 入门及应用

2012年02月16日 ⁄ 综合 ⁄ 共 2729字 ⁄ 字号 评论关闭
文章目录

【一】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.返回值类型

【上篇】
【下篇】

抱歉!评论已关闭.