SpringMVC入门(一)

非注解的SpringMVC

1、创建一个web工程

2、导入工程需要的jar包

3、配置SpringMVC的前端控制器

 前端控制器(DispatcherAdapter)需要在web.xml文件中进行配置,配置如下:


springmvc
org.springframework.web.servlet.DispatcherServlet


contextConfigLocation
classpath:config/springmvc.xml



springmvc

*.action

4、配置处理器映射器

 处理器映射器需要在SpringMVC的配置文件中进行配置。在src目录下新建一个config目录,在该目录下建一个springmvc.xml文件。(名称和位置没有固定要求,可随意),其内容如下:



5、编写Handler

 由于在前面使用了SimpleControllerHandlerAdapter处理器适配器,所以该Handler必须实现Controller接口。

public class TestController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
List itemsList = new ArrayList<>();
//静态模拟数据
Items items1 = new Items();
items1.setId(1);
items1.setName("笔记本电脑");
items1.setPrice(5000.0f);

Items items2 = new Items();
items2.setId(2);
items2.setName("鼠标");
items2.setPrice(50.0f);

itemsList.add(items1);
itemsList.add(items2);

//创建ModelAndView对象
ModelAndView modelAndView = new ModelAndView();
//填充model
modelAndView.addObject("itemsList",itemsList);
//填充view
modelAndView.setViewName("/page/itemlist.jsp");
return modelAndView;
}
}

7、视图编写(jsp页面)

 在webRoot目录下面编写Jsp页面,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>



商品展示












<c:forEach items="${itemsList}" var="items">





</c:forEach>
商品id 商品名称 商品价格
${items.id} ${items.name} ${items.price}



7、配置Handler

 Handler也要在SpringMVC的配置文件中进行配置,配置如下:


8、配置处理器映射器

 因为此处是用过Handler的name作为访问的URL,因此要配置的处理器映射器必须为BeanNameUrlHandlerMapping映射器。在SpringMVC配置文件中配置如下内容:


9、配置视图解析器

 此处配置jsp视图的解析器。在SpringMVC的配置文件中配置,配置内容如下:


10、测试

 部署项目,启动Tomcat,访问http://localhost:8080/项目名称/queryItems.action。测试结果如下:

11、第一种非注解的处理器适配器

 该适配器要求Handler必须实现HttpRequestHandler接口。


12、使用HttpRequestHandlerAdapter适配器时Handler的编写方式

public class TestController2 implements HttpRequestHandler{

@Override
public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {

//调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
List itemsList = new ArrayList<>();
//静态模拟数据
Items items1 = new Items();
items1.setId(1);
items1.setName("笔记本电脑");
items1.setPrice(5000.0f);

Items items2 = new Items();
items2.setId(2);
items2.setName("鼠标");
items2.setPrice(50.0f);

itemsList.add(items1);
itemsList.add(items2);

//向页面写入model数据
httpServletRequest.setAttribute("itemsList",itemsList);
httpServletRequest.getRequestDispatcher("/page/itemlist.jsp").forward(httpServletRequest,httpServletResponse);

}
}

13、Handler的配置


13、另一种非注解的处理器映射器








testController2


14、DispatcherServlet.properties文件


 前端控制器从上边的文件中加载处理映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,使用默认加载的。

posted @ 2017-08-14 14:12  一条路上的咸鱼  阅读(285)  评论(0)    收藏  举报