Spring学习点滴,《Spring in Action》笔记(六)

81. Spring 提供了丰富的控制器层次,方便根据实际需求选择实现或继承那一种控制器。不像 Struts 和 WebWork 比较平坦的 Action 层次。比如 ThowawayController/MultiActionController/SimpleFormController 等。 (P254)

82. 继承 AbstractController 要覆盖的方法是 handleRequestInternal(request,response);new ModelAndView("counrseList","courses",courses) 第一个参数是 view 的逻辑名,第二第三个参数是传 递给 view 的名称/数值对,那要向 View 传递多个参数就还是要用 request.setAttribute() 了。 (P256)

83. 当控制器需要根据参数执行工作时,如参数绑定到业务对象,插入验证器的钩子,应该继承 AbstractCommandController,你的 Controller 中需要覆盖 handle(request,response,Object command,BindException) 方法,这个方法还需带一个控制器命令参数,并且需要在构造函数中指定命令 类,如

public MyController(){  setCommandClass(MyCommand.class);} public 

MyController(){  setCommandClass(MyCommand.class);}

在使用 command 对象与 Struts 中的 ActionForm是一样的,也是通过处理方法来传递的,在 handle 方 法中用 MyCommand myCommand = (MyCommand)command。

命令对象只是一个 POJO,功能相当于 Struts 的 ActionForm,能匹配接受请求中的参数,它不需要 在 Spring 的配置文件中配置。留下一个疑问:要是 AbstractCommandController 能在 Spring 的配置 文件中注入可能要好些,相当于 Struts 的 Action 的 FormBean 也是在 struts-config.xml 配置给 Action 的

自己试了一下,可以通过配置给 commandClass 一个全限类名字符串注册 class 属性,Spring 提供 了相应的属性编辑器(P258)

<property name="commandClass">  

<value>com.unmi.MyCommand</value></property><property 

name="commandClass">  

<value>com.unmi.MyCommand</value></property>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索spring
, 控制器
, 参数
, 方法
, 配置
一个
,以便于您获取更多的相关知识。

时间: 2024-10-29 03:45:29

Spring学习点滴,《Spring in Action》笔记(六)的相关文章

Spring学习点滴,《Spring in Action》笔记(一)

第二章:装配 Bean -------------------------------------------------------------------------------- 1. <ref>标签中的 bean, local, parent 三个属性的区别(P53) 2. <list><value...</list>和<set><value...</set>可以换着用都 可以为 List, Set 以及数组属性赋值(P55)

Spring学习点滴,《Spring in Action》笔记(三)

第十章. 使用其他 Web 框架 41. Spring 提供了两种与 Struts 集成的方式 1) 让你的 Action 继承 org.springframework.web.struts.ActionSupport 2) 将请求委托给作为 Spring Bean 管理的 Struts action 来自理(P312) 42. 为了让 Struts 能访问 Spring 管理的 Bean,必须在 struts-config.xml 中注册一个知道 Spring 上下文的 ContextLoad

Spring学习点滴,《Spring in Action》笔记(四)

61. 更为精彩的是自动代理的方式来总体配置各分散类中方法的事物属性,结合使用 DefaultAdvisorAutoProxyCreator, TransactionAttributeSourceAdvisor 和 TransactionInterceptor (我还需要详细理清楚)(P181) 62. 当使用自动代理时,MethodMapTransationAttributeSource 就能很多的派上用场了,它的 methodMap 属性中可以指定哪个类的哪个方法,可以使用通配符(P182)

Spring学习点滴,《Spring in Action》笔记(五)

第八章. 建立 Web 层 71. Spring 的 MVC 和 Struts 的 MVC 基本一致 Spring 的控制流程是:请求->DispatcherServlet->从 HandlerMapping 中查询到处理该请求 的 Controller-> Controller 的 handleRequest 方法调用业务方法,最后返回 ModelAndView (ModelAndView告诉了 DispatcherServlet 转向到哪个视图) Struts 的控制流程是:请求-&

Spring学习点滴,《Spring in Action》笔记(七)

91. Spring MVC 还提供了一个特别点的 Controller 类型就是 ThrowawayController,它自成一个接 口,ThrowawayController 和 Controller 的关系是平行的.什么叫做 ThrowawayController 呢,中文 叫做一次性控制器,也就像一次性筷子那样用完即丢,下次要用又拿新的.表现在实例上就是相应 Bean 配置为 singleton="false",每次初始化一个新实例.与其他 Controller 的区别完全就

Spring学习点滴,《Spring in Action》笔记(二)

第四章. 征服数据库 -------------------------------------------------------------------------------- 31. Spring 把数据访问流程中的固定部分和可变部分分开,分别映射成两截然不同的类,模板 (Template)和回调(Callback),模板管事物控制.资源管理以及异常处理:回调实现特定于应用的部 分--创建 statement.绑定参数.以及整理结果集.模板方法模式的优秀应用(P123) 32. Jdbc

spring学习笔记(21)编程式事务配置,service层概念引入

访问数据库事务导入 在我之前的文章<spring学习笔记(19)mysql读写分离后端AOP控制实例>中模拟数据库读写分离的例子,在访问数据库时使用的方法是: public <E> E add(Object object) { return (E) getSessionFactory().openSession().save(object); } 通过直接开启session而后保存对象.查询数据等操作,是没有事务的.而如果我们的项目规模变大,业务逻辑日益复杂,我们在一个方法中进行大

Spring学习笔记2之表单数据验证、文件上传实例代码_java

在上篇文章给大家介绍了Spring学习笔记1之IOC详解尽量使用注解以及java代码,接下来本文重点给大家介绍Spring学习笔记2之表单数据验证.文件上传实例代码,具体内容,请参考本文吧! 一.表单数据验证 用户注册时,需要填写账号.密码.邮箱以及手机号,均为必填项,并且需要符合一定的格式.比如账号需要32位以内,邮箱必须符合邮箱格式,手机号必须为11位号码等.可以采用在注册时验证信息,或者专门写一个工具类用来验证:来看下在SpringMVC中如何通过简单的注释实现表单数据验证. 在javax

spring学习笔记(16)趣谈spring 事件机制[2]:多监听器流水线式顺序处理

上一篇我们使用到的ApplicationListener是无序的,结合异步调度它能满足了我们的大部分应用场景,但现在我们来个另类的需求,我们来模拟一条作业调度流水线,它不能异步,必须按照先后次序执行不同的任务才能得到我们的最终结果. 需求示例:现在假如华中科技大学的小白想要为它的智能机器人作品申报国家创新奖,需要经过学校.省级创新科研机构.国家创新科研机构逐层审核.我们尝试通过事件来实现,核心就在监听器实现SmartApplicationListener接口.示例如下: 1. 配置事件发布者小白