springMVC学习(1)
<!-- springmvc前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml)--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param> </servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!-- 第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析使用此种方式可以实现 RESTful风格的url第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由DispatcherServlet解析jsp地址,不能根据jsp页面找到handler,会报错。--><url-pattern>*.action</url-pattern></servlet-mapping>
springmvc.xml下配置:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "><!-- 配置Handler --><bean name="/queryItems.action" class="com.cy.controller.ItemsController1"/><!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url)所有的映射器都实现 HandlerMapping接口。--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /><!-- 处理器适配器 所有处理器适配器都实现 HandlerAdapter接口 --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><!-- 视图解析器解析jsp视图,默认使用jstl标签,classpath下的得有jstl的包--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean> </beans>
编写handler:
public class ItemsController1 implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {//调用service查找 数据库,查询商品列表,这里使用静态数据模拟List<Items> itemsList = new ArrayList<Items>();Items items_1 = new Items();items_1.setName("联想笔记本");items_1.setPrice(6000f);items_1.setDetail("ThinkPad T430 联想笔记本电脑!");Items items_2 = new Items();items_2.setName("苹果手机");items_2.setPrice(5000f);items_2.setDetail("iphone6苹果手机!");itemsList.add(items_1);itemsList.add(items_2);//返回ModelAndViewModelAndView modelAndView = new ModelAndView();//相当 于request的setAttribut,在jsp页面中通过itemsList取数据modelAndView.addObject("itemsList", itemsList);//指定视图modelAndView.setViewName("/WEB-INF/jsp/itemsList.jsp");return modelAndView;} }
视图jsp编写:
<table width="100%" border=1> <tr> <td><input type="submit" value="查询"/></td> </tr> </table> 商品列表: <table width="100%" border=1><tr><td>商品名称</td><td>商品价格</td><td>生产日期</td><td>商品描述</td><td>操作</td></tr><c:forEach items="${itemsList }" var="item"><tr><td>${item.name }</td><td>${item.price }</td><td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td><td>${item.detail }</td><td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td></tr></c:forEach> </table>
url访问http://localhost:8080/springMVC/queryItems.action,图:
三、对入门程序的补充:
1)另一个非注解的处理器映射器:在上述springmvc.xml中添加简单url映射器:
可以看到:多个处理器映射器可以并存,前端控制器判断url能让那些映射器映射,就让正确的映射器处理.
<!-- 配置Handler --><bean id="itemsController1" name="/queryItems.action" class="com.cy.controller.ItemsController1"/><!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url)所有的映射器都实现 HandlerMapping接口。--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /><!--简单url映射 --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><!-- 对itemsController1进行url映射,url是/queryItems1.action --><prop key="/queryItems1.action">itemsController1</prop><prop key="/queryItems2.action">itemsController1</prop></props></property></bean>
现在url中访问:
http://localhost:8080/springMVC/queryItems1.action
http://localhost:8080/springMVC/queryItems2.action
http://localhost:8080/springMVC/queryItems.action都可以正确访问;
2)另一个非注解的适配器:
这个HttpRequestHandlerAdapter适配器要求Handler实现HttpRequestHandler接口:
<!-- 配置另外一个Handler --><bean id="itemsController2" name="/queryItems3.action" class="com.cy.controller.ItemsController2" /><!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url)所有的映射器都实现 HandlerMapping接口。--><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /><!-- 另一个非注解的适配器 --><bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/><!-- 视图解析器解析jsp视图,默认使用jstl标签,classpath下的得有jstl的包--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
Handler:
public class ItemsController2 implements HttpRequestHandler{@Overridepublic void handleRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {//调用service查找 数据库,查询商品列表,这里使用静态数据模拟List<Items> itemsList = new ArrayList<Items>();Items items_1 = new Items();items_1.setName("联想笔记本");items_1.setPrice(6000f);items_1.setDetail("ThinkPad T430 联想笔记本电脑!");Items items_2 = new Items();items_2.setName("苹果手机");items_2.setPrice(5000f);items_2.setDetail("iphone777苹果手机!");itemsList.add(items_1);itemsList.add(items_2);//设置模型数据request.setAttribute("itemsList", itemsList);//设置转发的视图request.getRequestDispatcher("/WEB-INF/jsp/itemsList.jsp").forward(request, response);//使用此方法可以通过修改response,设置响应的数据格式,比如响应json数据/*response.setCharacterEncoding("utf-8");response.setContentType("application/json;charset=utf-8");response.getWriter().write("json串");*/} }
现在浏览器中访问http://localhost:8080/springMVC/queryItems3.action就能访问了;
转载于:https://www.cnblogs.com/tenWood/p/6267342.html
springMVC学习(1)相关推荐
- SpringMVC:学习笔记(11)——依赖注入与@Autowired
SpringMVC:学习笔记(11)--依赖注入与@Autowired 使用@Autowired 从Spring2.5开始,它引入了一种全新的依赖注入方式,即通过@Autowired注解.这个注解允许 ...
- SpringMVC 学习-异常处理 SimpleMappingExceptionResolver 类
SpringMVC 学习-异常处理 SimpleMappingExceptionResolver 类 参考文章: (1)SpringMVC 学习-异常处理 SimpleMappingException ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
- (转)SpringMVC学习(三)——SpringMVC的配置文件
http://blog.csdn.net/yerenyuan_pku/article/details/72231527 读者阅读过SpringMVC学习(一)--SpringMVC介绍与入门这篇文章后 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmv ...
- SpringMVC学习(五)——零配置实现SpringMVC
文章目录 1.引言 2.搭建过程 2.1 开发环境搭建 2.2 项目搭建 2.2.1 首先看`web.xml`配置 2.2.2 增加`WebApplicationInitializer`的实现类 2. ...
- SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)
文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...
- springmvc学习笔记(19)-RESTful支持
springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC--数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...
- (转)SpringMVC学习(一)——SpringMVC介绍与入门
http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...
最新文章
- Java方向如何准备BAT技术面试答案
- OpenGL_Qt学习笔记之_05(纹理映射)
- day002--python编程的相关软件,变量
- NVDKC6416平台H.264算法优化
- 2019 d serv 激活_化疗过程中肌肉减少症的发生机制及维生素D、ω-3脂肪酸的作用...
- html htc控件详解,*.HTC 文件的简单介绍-网页设计,HTML/CSS
- 工作后辞职原因是什么?
- Ubuntu 14.04 + nginx + php + mysql + phpmyadmin环境搭建,详细操作
- linux中 qt安装教程视频,Linux 下QT安装教程
- SadpTool 海康设备网络搜索工具
- 项目管理前话001——商业模式画布
- gtx1060 能用catia软件吗_性能炸天!资深IT大叔详测Precision 7730工作站
- FPGA 之 SOPC 系列(三)Nios II 体系结构
- 微信小程序实现类似微信提现、支付宝提现充值等 “自定义键盘“可实现自定义右下角搜索内容,手写input功能view组件,实现焦点获取事件
- 总结Python设置Excel单元格样式的一切,比官方文档还详细。
- visio付款流程图_职场人士常用的3款超好用流程图软件!
- AndroidStudio Task不显示
- 计算机面试、笔试常考题
- 蚂蚁金服新一代数据可视化引擎 G2
- python下载链接下载文件_python从下载链接下载文件到本地
热门文章
- 台式计算机诞生,生物电脑 ①1946年,世界上第一台计算机诞生,这个庞然大物开创了一个电脑时代。从那时候起,人们不断革新、创造,把庞然大物的体积一减再减,现在我们所见的台式电脑、掌上电脑...
- mysql查看索引文件_MySql如何查看索引并实现优化
- c语言调用python变量_在c中读取python的全局变量
- 简述html文档的基本,网页制作简答题答案
- linux启动python项目_java项目部署Linux服务器几种启动方式总结经验
- java 运行 依赖_java – 运行时中的依赖项确定
- layui多文件上传讲解_layui文件上传的实际应用实例
- 学习Linux的决心书
- JavaScript 动画 3---缓冲动画
- linux crontab 定时任务解析