Spring学习点滴,《Spring in Action》笔记(六) - 编程入门网
Spring学习点滴,《Spring in Action》笔记(六)时间:2011-08-18 unmi.cc 隔叶黄莺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学习点滴,《Spring in Action》笔记(六)(2)时间:2011-08-18 unmi.cc 隔叶黄莺84. AbstractFormController(BaseCommandController的子类,所以也要设置 commandClass 属性) 有一个子类 SimpleFormController,它声明了两个属性 formView 和 successView,分别对应了在处理 请求出现异常和正常时对应的 View 的逻辑名,这两个属性需要在配置文件中给配上,在你的 SimpleFormController 类中覆盖 void doSubmitAction(Object command) throws Exception 将会使用 到它们,注意这个方法没有返回值的。你也可以覆盖 ModelAndView onSubmit(Ojbect command),向 View 中传递数据,return new ModelAndView(getSuccessView(),"student",student); (P260) 85. AbstractFormController 可在接收到 HTTP GET 请求的时候显示一个表单,转向到 formView, 而在接收到一个 HTTP POST 请求是处理这个表单,转向到 successView,处理时若验证不通过返回到 formView。doSubmitAction(Object command) 只处理 HTTP POST 请求操作。(P259) 86. 验证表单输入, 你的验证类必须实现 org.springframework.validation.Validator 接口, supports()方法帮助判断验证器是否适用于指定类,在 validate(Object command, Errors errors) 用 Errors 驳回任何非法数据。可使用 ValidationUtils.rejectIfXxx()、 ValidationUtils.invokeValidator() 方法或者是 Errors.reject()、Erros.rejectValue() 方法。如 ValidationUtils. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |