- 浏览: 107128 次
- 性别:
- 来自: 深圳
最新评论
文章列表
Spring4MVC之自定义视图
- 博客分类:
- Spring4MVC
自定义视图
写数据到JFreeChart,excel等功能是通过此特性完成的
开发步骤
1. 添加自定义视图
package org.rabbitx.web.spring4mvc.customview;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.st ...
Spring4之Spring4
- 博客分类:
- Spring4
在基于主机方式配置Spring的配置文件中,你可能会见到<context:annotation-config/>这3样一条配置,他的作用是式地向 Spring 容器注册
AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、
PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor 这 4 个BeanPostProcessor。
注册这4个 BeanPostProcessor的作用,就是为了 ...
Spring4MVC之国际化
- 博客分类:
- Spring4MVC
Spring4MVC之国际化
1. 添加jstljar包:standard.jar,jstl.jar
2. 编写国际化资源文件:i18n.properties
i18n.username=USERNAME:
i18n.password=PASSWORD:
i18n.submit=SUMBIT
i18n.username=\u7528\u6237\u540D\uFF1A
i18n.password=\u5BC6\u7801\uFF1A
i18n.submit=\u767B\u5F55
3. 在springmvc.xml文件中 ...
JstlView
若项目中使用了 JSTL,则 SpringMVC 会自动把视图由InternalResourceView 转为 JstlView
若使用 JSTL 的 fmt 标签则需要在 SpringMVC 的配置文件中配置国际化资源文件
若希望直接响应通过 SpringMVC 渲染的页面,可以使用 mvc:view-controller 标签实现
1. 配置mvc:view-controller
<!--配置直接转发页面-->
<!--可以直接跳转至相应的页面,无需经过Handler的方法-->
...
Spring4MVC之视图解析流程
- 博客分类:
- Spring4MVC
流程查看方法
1. 在任一handle方法中打断点调试,如在HelloworldController的sayHello方法中打断点;
2. 启动调试;
大致流程
1. DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse)
2. AnnotationMethodHandlerAdapter.handle(Htt ...
异常消息
HTTP Status 500 - Session attribute 'employee' required - not found in session
type Exception report
message Session attribute 'employee' required - not found in session
description The server encountered an internal error that prevented it from fulfilling this request.
exception
o ...
SpringMVC如何确定目标方法POJO类型参数
SpringMVC 确定目标方法 POJO 类型入参的过程
1. 确定一个 key:
1). 若目标方法的 POJO 类型的参数木有使用 @ModelAttribute 作为修饰, 则 key 为 POJO 类名第一个字母的小写
2). 若使用了 ...
@ModelAttribute使用情景
在用户修改数据的场景中,浏览器表单发送给服务器的数据并非全部数据,而只是一部分。如用户修改员工信息时,其工号和入职日期时不可以修改的。表单中不会有该字段对应的值。这样修改其他信息后,提交的数据中工号和入职日期为空。若直接以这个数据更新数据库,则会设置 工号和入职日期为空,发生信息丢失。
解决办法:
1. 在表单中使用隐藏字段,缺点是,当字段较多时,叫麻烦,代码不清晰。甚至不可行,如密码,不能暴露在页面中。
2. 在处理类中更新时,手动从数据库获取。
3. SpringMVC提供了更加优雅的解决方案,使用@ModelAttri ...
Spring4MVC之处理模型数据
- 博客分类:
- Spring4MVC
处理模型数据
Spring MVC 提供了以下几种途径输出模型数据
1. ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据
2. Map 及 Model: 入参为org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
3. @SessionAttributes: 将模型中的某个属性暂存到HttpSession 中,以便多个请求之间可以共享这个属性
4 ...
使用 Servlet API 作为入参
MVC 的 Handler 方法可以接受哪些 ServletAPI 类型的参数:
HttpServletRequest
HttpServletResponse
HttpSession
java.security.Principal
Locale
InputStream
OutputStream
Reader
Writer
示例
1. 添加JSP页面
<li>使用 Servlet API作为入参
<ul>
...
使用 POJO 对象绑定请求参数值
Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
如:dept.deptId、dept.address.tel 等
示例
1. JSP页面
<li>使用 POJO 对象绑定请求参数值
<form action="user/testPOJOMapping" method="POST">
<table>
...
请求处理方法签名
Spring MVC 通过分析处理方法的签名,将 HTTP 请求信息绑定到处理方法的相应人参中。
Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名。
必要时可以对方法及方法入参标注相应的注解(@PathVariable、@RequestParam、@RequestHeader 等)、Spring MVC 框架会将 HTTP 请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。
使用 @RequestParam 绑定请求参数值
在处理方法入参处使用 @RequestPar ...
Spring4MVC之REST
- 博客分类:
- Spring4MVC
REST
REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的URI就可以,因此 URI 即为每一个资源的独一无二的识别符。
表现层(Representation):把 ...
@PathVariable 映射 URL 绑定的占位符
带占位符的 URL 是 Spring3.0 新增的功能,该功能在
SpringMVC 向 REST 目标挺进发展过程中具有里程碑的
意义
通过 @PathVariable 可以将 URL 中占位符参数绑定到控
制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
@PathVariable("xxx") 绑定到操作方法的入参中。
示例
<li>@PathVariable映射 URL绑定的占位符
<ul>
...
使用@RequestMapping 映射请求
Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求
在控制器的类定义及方法定义处都可标注
@RequestMapping
类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录
方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于WEB 应用的根目录
DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理 ...