一、 Command 执行流程如下图所示:
二、Command的使用Demo
【步骤一】
创建一个名为Person的POJO
【Person】
package com.myapps.pojo; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
【步骤二】
创建一个MyCommandController如下:
【MyCommandController】
package com.myapps.web.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractCommandController; import com.myapps.pojo.Person; public class MyCommandController extends AbstractCommandController { public MyCommandController(){ this.setCommandClass(Person.class); this.setCommandName("person"); } @Override protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException error) throws Exception { Person p=(Person)command; System.out.println("执行路径:---->"+request.getContextPath()+request.getServletPath()); System.out.println("我是Person :——————>"+p); return new ModelAndView("index"); } }
【步骤三】 在/WEB-INF/下创建一个名为jsps的文件夹,用于存放jsp文件。 在该文件夹下创建一个index.jsp
【步骤四】
创建一个spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <bean name="/home.action" class="com.myapps.web.controller.HomeController" /> <bean name="/mycommand.action" class="com.myapps.web.controller.MyCommandController" /> <!-- 视图解析器 --> <bean id="internalResourceViewResolver " class="org.springframework.web.servlet.view.InternalResourceViewResolver "> <property name="prefix" value="/WEB-INF/jsps/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans> (由于springmvc的配置文件默认为“/WEB-INF/action-servlet.xml”) 而spring-mvc.xml配置文件不是默认形式,因此需要在web.xml中配置相应的初始化参数。 【web.xml配置如下】 <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>
【步骤五】 在浏览器地址栏中输入: http://localhost:8080/springmvc/mycommand.action?name=jay&age=35 控制台打印输出: 执行路径:---->/springmvc/mycommand.action 我是MyCommandController :——————>Person [name=jay, age=35]
<!--EndFragment-->
相关推荐
在三层架构中,SpringMVC 属于表现层(WEB 层),负责处理用户的请求并返回响应。 1. **SpringMVC 的组成** - **前端控制器(DispatcherServlet)**:作为整个应用的入口,接收所有 HTTP 请求,并根据请求内容分发...
模型驱动(ModelDriven)和命令对象(Command Object)是另一种处理请求参数的方式,它们允许将所有请求参数绑定到一个单独的对象上。 ```java @Controller public class MyController implements ModelDriven...
最后,对于表单提交和处理,SpringMVC提供了ModelAndView、Command对象以及FormTag库等机制,使得数据验证、回显和更新变得简单。 总结,"SpringMVC小Demo"涵盖了SpringMVC的基本使用,包括DispatcherServlet配置、...
此外,SpringMVC支持多种类型的处理器,如Controller、Command或FormController。现在广泛使用的是@Controller注解的控制器,它将方法与HTTP请求映射起来: ```java import org.springframework.stereotype....
`BaseCommandController`是Spring MVC中用于处理表单提交的控制器,它继承自`AbstractCommandController`,并提供了处理命令对象(Command Object)的基础功能。然而,Spring 3.0之后,推荐使用`@ModelAttribute`...
5. **处理器或页面控制器(Controller)**:Controller是处理用户请求的地方,通常使用注解驱动,如`@RequestMapping`来定义处理请求的方法。 6. **验证器(Validator)**:在Controller处理请求之前,可使用...
在表单处理方面,Spring MVC 支持数据绑定,能将表单参数自动绑定到 Command 或 Form 对象中。如果表单字段与对象属性相匹配,Spring 将调用相应的 `set` 方法将参数注入对象。此外,还可以使用属性编辑器...
1.2. Springmvc 优点 1、清晰的角色划分: 前端控制器(DispatcherServlet) 请求到处理器映射(HandlerMapping) 处理器适配器(HandlerAdapter) 视图解析器(ViewResolver) 处理器或页面控制器(Controller) ...
Spring MVC框架中,控制器(Controller)扮演着至关重要的角色,是用户请求的入口和处理中心。 Spring MVC提供了三种类型的控制器,每种控制器都有其特点和应用场景。本文将对这三种控制器进行详细的介绍和分析。 ...
**SpringMVC_2_HelloWorld**(共19页):这部分内容通过简单的HelloWorld示例介绍了SpringMVC的基本工作流程,包括控制器(Controller)的创建、视图解析器(ViewResolver)的配置、请求映射(@RequestMapping)等...
以下是集成ActiveMQ到Spring MVC应用的三种常见方式,以及相关知识点的详细说明: 1. **基于XML配置的集成** 在Spring MVC项目中,我们可以通过XML配置文件来定义ActiveMQ的连接工厂、目的地(如Queue或Topic)...
- 高效的异常处理:SpringMVC提供了统一的异常处理机制,可以快速定位和处理错误。 - 支持AOP(面向切面编程):可以通过AOP实现事务管理、日志记录等功能,提升代码的可维护性。 通过以上介绍,我们可以看到...
5. **处理器或页面控制器(Controller)**:实际处理业务逻辑的组件。 6. **验证器(Validator)**:用于校验传入的数据。 7. **命令对象(Command)**:用来封装用户输入的数据。 8. **表单对象(FormObject)**:...
Spring MVC 框架与 Redis 的整合在现代 Web 应用开发中是非常常见的技术组合,它们各自在不同的层面上提供了高效能和灵活性。Spring MVC 是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)架构的 ...
它通过分析请求URL、请求参数、请求头等信息,找出最适合处理当前请求的处理器对象,通常是Controller类的一个实例。Spring MVC提供多种HandlerMapping实现,如BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping...
在MVC模式中,模型负责处理业务逻辑和数据管理,视图则负责展示数据,而控制器作为中介,接收来自用户的请求,处理这些请求,并决定如何更新模型以及选择合适的视图来响应。这种分离使得开发者能够独立地修改各个...
清晰的角色划分:控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(form object)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、 处理器映射(handler ...
##### 8.5 SpringMVC的数据绑定(表单数据绑定到command对象) SpringMVC支持自动将请求参数绑定到控制器方法的参数上。 ##### 8.6 SpringMVC服务器端的表单校验 SpringMVC提供了强大的表单验证功能,可以通过...
在SpringMVC中,可以将业务逻辑封装到HystrixCommand中,并通过配置`execution.isolation.thread.timeoutInMilliseconds`来限制单个请求的处理时间,从而达到限流的效果。 5. **Spring Cloud Gateway的限流**:在...