1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 3 <display-name>springmvc</display-name> 4 5 <!-- springmvc前端控制器 --> 6 <servlet> 7 <servlet-name>springmvc</servlet-name> 8 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 9 <!-- contextConfigLocation配置springmvc加載的配置文件(配置處理器映射器、適配器等等) 10 若是不配置contextConfigLocation,默認加載的是/WEB-INF/servlet名稱-serlvet.xml(springmvc-servlet.xml) 11 --> 12 <init-param> 13 <param-name>contextConfigLocation</param-name> 14 <param-value>classpath:springmvc.xml</param-value> 15 </init-param> 16 </servlet> 17 18 <servlet-mapping> 19 <servlet-name>springmvc</servlet-name> 20 <!-- 21 第一種:*.action,訪問以.action結尾 由DispatcherServlet進行解析 22 第二種:/,因此訪問的地址都由DispatcherServlet進行解析,對於靜態文件的解析須要配置不讓DispatcherServlet進行解析 23 使用此種方式能夠實現 RESTful風格的url 24 第三種:/*,這樣配置不對,使用這種配置,最終要轉發到一個jsp頁面時, 25 仍然會由DispatcherServlet解析jsp地址,不能根據jsp頁面找到handler,會報錯。 26 --> 27 <url-pattern>*.action</url-pattern> 28 </servlet-mapping> 29 30 31 <welcome-file-list> 32 <welcome-file>index.html</welcome-file> 33 <welcome-file>index.htm</welcome-file> 34 <welcome-file>index.jsp</welcome-file> 35 <welcome-file>default.html</welcome-file> 36 <welcome-file>default.htm</welcome-file> 37 <welcome-file>default.jsp</welcome-file> 38 </welcome-file-list> 39 </web-app>
二、配置處理器適配器,在classpath下的springmvc.xml中配置處理器適配器。html
1 <!-- 處理器適配器 全部處理器適配器都實現 HandlerAdapter接口 --> 2 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
三、開發controller程序,這裏使用的是靜態數據。下一篇和mybatis整合後將去數據庫查詢數據前端
1 package com.zhang.controller; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 9 import org.springframework.web.servlet.ModelAndView; 10 import org.springframework.web.servlet.mvc.Controller; 11 12 import com.zhang.domain.Items; 13 14 public class ItemsController implements Controller { 15 @Override 16 public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception { 17 //調用service查找 數據庫,查詢商品列表,這裏使用靜態數據模擬 18 List<Items> itemsList = new ArrayList<Items>(); 19 //向list中填充靜態數據 20 Items items_1 = new Items(); 21 items_1.setName("聯想筆記本"); 22 items_1.setPrice(6000f); 23 items_1.setDetail("ThinkPad T430 聯想筆記本電腦!"); 24 Items items_2 = new Items(); 25 items_2.setName("蘋果手機"); 26 items_2.setPrice(5000f); 27 items_2.setDetail("iphone6蘋果手機!"); 28 itemsList.add(items_1); 29 itemsList.add(items_2); 30 //返回ModelAndView 31 ModelAndView modelAndView = new ModelAndView(); 32 //至關 於request的setAttribut,在jsp頁面中經過itemsList取數據 33 modelAndView.addObject("itemsList", itemsList); 34 //指定視圖 35 modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); 36 return modelAndView; 37 } 38 39 }
四、配置處理器映射器,在classpath下的springmvc.xml中配置處理器映射器java
1 <!-- 配置Handler --> 2 <bean id="itemsController" name="/queryItems_test.action" class="com.zhang.controller.ItemsController" /> 3 <!-- 處理器映射器 將bean的name做爲url進行查找 ,須要在配置Handler時指定beanname(就是url) 全部的映射器都實現 HandlerMapping接口。--> 4 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
五、配置視圖解析器,須要配置解析jsp的視圖解析器。程序員
1 <!-- 視圖解析器解析jsp解析,默認使用jstl標籤,classpath下的得有jstl的包--> 2 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
六、JSP頁面web
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>查詢商品列表</title> 10 </head> 11 <body> 12 <form action="${pageContext.request.contextPath }/item/queryItem.action" method="post"> 13 查詢條件: 14 <table width="100%" border=1> 15 <tr> 16 <td><input type="submit" value="查詢"/></td> 17 </tr> 18 </table> 19 商品列表: 20 <table width="100%" border=1> 21 <tr> 22 <td>商品名稱</td> 23 <td>商品價格</td> 24 <td>生產日期</td> 25 <td>商品描述</td> 26 <td>操做</td> 27 </tr> 28 <c:forEach items="${itemsList }" var="item"> 29 <tr> 30 <td>${item.name }</td> 31 <td>${item.price }</td> 32 <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td> 33 <td>${item.detail }</td> 34 <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td> 35 </tr> 36 </c:forEach> 37 </table> 38 </form> 39 </body> 40 </html>
七、測試,在瀏覽器中輸入地址:http://127.0.0.1:8080/springmvc//queryItems_test.action,顯示效果以下:spring
3、工程目錄結構:數據庫
資源下載連接:http://download.csdn.net/detail/u013865056/9907602設計模式