Java基础、中级、高级、架构面试资料

AbstractCommandController(抽象命令控制器)

JAVA herman 2676浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

上一章中,我就提到了抽象命令控制器:AbstractCommandController。也列举了它的一些源代码。本章将通过一个具体的实例来加深我们对它的理解。

命令控制器,可以实现该控制器来创建命令控制器,该控制器能把自动封装请求参数到一个命令对象,而且提供了验证功能。

先创建命令类(就是普通的JavaBean类/POJO)。

package com.xttblog.chapter4.model;  
public class UserModel {  
    private String username;  
    private String password;  
        //省略setter/getter  
}  

实现控制器的代码如下:

package com.xttblog.web.controller;  
//省略import  
public class MyAbstractCommandController extends AbstractCommandController {  
    public MyAbstractCommandController() {  
        //设置命令对象实现类  
        setCommandClass(UserModel.class);  
    }  
    @Override  
    protected ModelAndView handle(HttpServletRequest req, HttpServletResponse resp, Object command, BindException errors) throws Exception {  
        //将命令对象转换为实际类型  
        UserModel user = (UserModel) command;  
        ModelAndView mv = new ModelAndView();  
        mv.setViewName("abstractCommand");  
        mv.addObject("user", user);  
        return mv;  
    }  
}   

然后再再Spring配置文件中进行bean的配置。

<!— 在chapter4-servlet.xml配置处理器 -->     
<bean name="/abstractCommand"   
	class="com.xttblog.chapter4.web.controller.MyAbstractCommandController">  
	<!-- 也可以通过依赖注入 注入命令实现类 -->  
	<!-- property name="commandClass" value="com.xttblog.chapter4.model.UserModel"/-->  
</bean> 

最后我们编写jsp视图代码。

<!— WEB-INF/jsp/abstractCommand.jsp视图下的主要内容 -->     
${user.username }-${user.password }  

当我们在浏览器中输入“http://localhost:9080/springmvc-chapter4/abstractCommand?username=123&password=123”,会自动将请求参数username和password绑定到命令对象;绑定时按照JavaBean命名规范绑定;

AbstractCommandController 案例

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » AbstractCommandController(抽象命令控制器)