SpringMVC学习(3)--基于注解的控制器
来源:互联网 发布:老电影修复软件 编辑:程序博客网 时间:2024/06/04 18:39
在上一节中,为了便于理解Controller的作用,我仍然使用了Controller接口,这样一个实现了Controller接口的类只能处理一个动作,下面来看SpringMVC的基于控制器的注解
下面是新的项目结构:
1.dispatcher-servlet.xml
要使用注解的控制器,需要在配置文件中加入对应的命名空间,关于Schema命名空间的声明,我从网上找到一张图片:
下面是我们的配置文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- context命名空间将扫描下面指定的package--> <context:component-scan base-package="controller"/> <!--视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean></beans>
2.Controller注解
使用基于注解的控制器的优点是1.一个控制器可以处理多个动作;2.请求映射不需要存储在配置文件中(使用RequsetMapping注解可以对一个方法进行请求处理)
@Controller注解用于表示某一个类是一个控制器
@RequestMapping注解为每个动作指定对应的处理发方法
下面是我们的控制器:
package controller;import domain.Product;import form.ProductForm;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;/** * Created by kay on 2016/12/26. */@Controllerpublic class ProductController { private static final Log logger = LogFactory.getLog(ProductController.class); @RequestMapping("/input_product") public String inputProduct(){ logger.info("inputProduct 调用"); return "ProductForm"; } @RequestMapping("/save_product") public String saveProduct(ProductForm productForm, Model model){ logger.info("saveProduct 调用"); //无需再从request中取出表单数据再ProductForm实例化 Product product=new Product(); product.setName(productForm.getName()); product.setDescription(productForm.getDescription()); product.setPrice(Float.parseFloat(productForm.getPrice())); model.addAttribute("product",product); return "ProductDetails"; }}
2个请求方法用过@RequestMapping注解进行URL映射,当程序接收到对应的URL时将调用处理方法。@RequestMapping有一些属性,除了value还可以指定处理方法为GET、POST等等,详细可以查文档。
3.请求处理方法
请求处理方法可以有多个不同类型的参数和一个多种类型的返回值。如果需要在请求处理中使用类似HttpSession、HttpServletRequest/Response等等,可以直接写在参数的位置,Spring将会正确的传递到方法中。它是一个包含Map对象的SpringMVC类型,每次调用请求处理方法时将创建Model对象并将其注入到各种对象中。
请求处理的返回类型:
ModelAndView
Model
Map包含的模型的属性
View
代表逻辑视图名的String
void
·····
小结:以上简单的将之前的Controller接口改为注解类型,并理解这样做的好处,下面将学习继续基于注解的其他配置。kay
参考:《Spring MVC 学习指南》
XML基础知识–>Spring配置http://www.iteye.com/topic/1123630
0 0
- SpringMVC学习(3)--基于注解的控制器
- SpringMVC学习之基于注解的控制器
- Spring学习笔记-springMVC基于注解的控制器(基本概念)
- Spring学习笔记-springMVC基于注解的控制器(Demo)
- SpringMVC Ⅱ 基于注解的控制器
- springMVC学习笔记七(基于注解方式的控制器的数据验证,类型转换和格式化)
- 基于注解的控制器
- SpringMVC--注解驱动的控制器
- 梳理3基于注解的控制器
- SpringMVC学习笔记(二):基于注解的方式
- springMVC学习(基于注解的MVC)
- springMVC学习笔记六(注解方式实现控制器)
- springmvc学习笔记(基于注解实现)
- 基于注解的SpringMVC
- 基于注解的springmvc
- 基于注解的springmvc
- 基于注解的SpringMVC
- 基于注解的SpringMVC
- 在输入框输入完数据是,enter键便捷操作、 onkeydown()事件。
- OpenStack 高可用和灾备方案(下)
- LoaderManager使用详解(一)---没有Loader之前的世界
- mavenCenter和JCent
- inet_ntoa报错显示返回int
- SpringMVC学习(3)--基于注解的控制器
- web app 通过cordova在模拟的Android平台上
- LoaderManager使用详解(二)---了解LoaderManager
- pyspider 爬虫教程
- Android多分辨率适配框架(1)— 核心基础
- 数据库设计步骤
- Android 64K解除限制
- 投资的策略
- 杭电2020