`
文章列表
7.3、数据格式化 在如Web /客户端项目中,通常需要将数据转换为具有某种格式的字符串进行展示,因此上节我们学习的数据类型转换系统核心作用不是完成这个需求,因此Spring3引入了格式化转换器(Formatter SPI) 和格式化服务API(FormattingConversionService)从而支持这种需求。在Spring中它和PropertyEditor功能类似,可以替代PropertyEditor来进行对象的解析和格式化,而且支持细粒度的字段级别的格式化/解析。   Formatter SPI核心是完成解析和格式化转换逻辑,在如Web应用/客户端项目中,需要解析、打印/展 ...
7.1、简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。   一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化:  流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值; ②:数据验证:需要显示调用Spring的Validator接口实现进行数据验证; ③:格式化显示:需要调用PropertyEditor的getText进行格式化显示。   使用如上架构的缺点是: (1、PropertyEditor被设计为只能S ...
此文章为原创,转载请注明出处!!!   redis官方下载地址:http://redis.io/download    官方下载地址里面有描述安装方法   1.下载redis压缩包       命令:wget http://download.redis.io/releases/redis-2.8.19.tar.gz 2.解压redis压缩包 命令:tar xzf redis-2.8.19.tar.gz 3.进入到解压后的redis路径下 命令:cd redis-2.8.19 4.最后一步安装 命令:make   我相信很多人都会安装,一共就这么4步也是非常简单的,但 ...
6.6.2、@RequestParam绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的参数上。 Java代码   public String requestparam1(@RequestParam String username)   请求中包含username参数(如/requestparam1?username=zhang),则自动传入。   此处要特别注意:右击项目,选择“属性”,打开“属性对话框”,选择“Java Compiler”然后再打开的选项卡将“Add variabl
到目前为止,请求已经能交给我们的处理器进行处理了,接下来的事情是要进行收集数据啦,接下来我们看看我们能从请求中收集到哪些数据,如图6-11:  图6-11 1、@RequestParam绑定单个请求参数值; 2、@PathVariable绑定URI模板变 ...
Spring中大量使用了反射机制,那么究竟是什么地方使用了呢?   一  反射源头Class类 对类的概念我们已经非常熟悉了。比如可以有Student这个类,Person这个类。但是我们要知道,有一个叫Class的类,它是反射的源头。   正常方式:通过完整的类名—>通过new实例化—>取得实例化对象 反射方式:实例化对象—>getClass()方法—>通过完整的类名   一个简单的例子:   package cn.classes; public class OneClass { }
6.6.5、生产者、消费者限定 6.6.5.1、基本概念 首先让我们看一下通过HTTP协议传输的媒体类型及如何表示媒体类型:   一、Media Type: 互联网媒体类型,一般就是我们所说的MIME类型,用来确定请求的内容类型或响应的内容类型。  写道 媒体类型格式:type/subtype(;parameter)?type主类型,任意的字符串,如text,如果是*号代表所有;subtype 子类型,任意的字符串,如html,如果是*号代表所有;parameter 可选,一些参数,如Accept请求头的q参数, Content-Type的 charset参数。详见http:/ ...
6.5、请求映射 处理器定义好了,那接下来我们应该定义功能处理方法,接收用户请求处理并选择视图进行渲染。首先我们看一下图6-1: http请求信息包含六部分信息: ①请求方法,如GET或POST,表示提交的方式; ②URL,请求的地址信息; ③协议及版本; ④请求头信息(包括Cookie信息); ⑤回车换行(CRLF); ⑥请求内容区(即请求的内容或数据),如表单提交时的参数数据、URL请求参数(?abc=123 ?后边的)等。   想要了解HTTP/1.1协议,请访问
6.1、注解式控制器简介 一、Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。已经@Deprecated。   二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。 并且提供了一组强大的注解:   需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器 AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。   @Contr ...
5.1、处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。   5.1.1、常见应用场景 1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面; 3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如apache ...
4.16、数据类型转换和数据验证 流程: 1、首先创建数据绑定器,在此此会创建ServletRequestDataBinder类的对象,并设置messageCodesResolver(错误码解析器); 2、提供第一个扩展点,初始化数据绑定器,在此处我们可以覆盖该方法注册自定义的PropertyEditor(请求参数——>命令对象属性的转换); 3、进行数据绑定,即请求参数——>命令对象的绑定; 4、提供第二个扩展点,数据绑定完成后的扩展点,此处可以实现一些自定义的绑定动作; 5、验证器对象的验证,验证器通过validators注入,如果验证失败,需要把错误信息放入 ...
4.15、MultiActionController 之前学过的控制器如AbstractCommandController、SimpleFormController等一般对应一个功能处理方法(如新增),如果我要实现比如最简单的用户增删改查(CRUD Create-Read-Update-Delete),那该怎么办呢?   4.15.1 解决方案 1、每一个功能对应一个控制器,如果是CRUD则需要四个控制器,但这样我们的控制器会暴增,肯定不可取; 2、使用Spring Web MVC提供的MultiActionController,用于支持在一个控制器里添加多个功能处理方法 ...
4.12、ParameterizableViewController 参数化视图控制器,不进行功能处理(即静态视图),根据参数的逻辑视图名直接选择需要展示的视图。 Java代码    <bean name="/parameterizableView"   class="org.springframework.web.servlet ...
4.11、AbstractWizardFormController 向导控制器类提供了多步骤(向导)表单的支持(如完善个人资料时分步骤填写基本信息、工作信息、学校信息等) 假设现在做一个完善个人信息的功能,分三个页面展示: 1、页面1完善基本信息; 2、页面2完善学校信息; 3、页面3完善工作信息。 这里我们要注意的是当用户跳转到页面2时页面1的信息是需要保存起来的,还记得AbstractFormController中的sessionForm吗? 如果为true则表单数据存放到session中,哈哈,AbstractWizardFormController就是使用了这个特性。 ...
4.5、ServletForwardingController 将接收到的请求转发到一个命名的servlet,具体示例如下:   java代码: Java代码   package cn.javass.chapter4.web.servlet;   public class ForwardingServlet extends HttpServlet {      
Global site tag (gtag.js) - Google Analytics