1.配置前端控制器
<!-- contextConfigLocation 配置springmvc加載的配置文件 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<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
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
然後便在源文件下新建一個springmvc.xml2.在springmvc.xml中配置處理器適配器
<!-- 處理器適配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
3.開發Handler 實現Controller接口,注意:setViewName表示設置待解析的jsp頁面,將屬性值傳給這個頁面
public class ItemsHandler1 implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
//調用service 查詢商品列表,這裏使用靜態數據模擬
ArrayList<Items>list=new ArrayList<Items>();
list.add(new Items("小米",1299,"性價比最高"));
list.add(new Items("華爲",3999,"華爲榮耀,你值得擁有"));
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("list", list);
modelAndView.setViewName("/items.jsp");
return modelAndView;
}
}
4.視圖編寫
items.jsp
<c:forEach var="item" items="${list}">
手機名稱:${item.name }
價 格: ${item.price }
介 紹: ${item.detail }<br/>
</c:forEach>
5.配置映射器
<!-- 配置Handler -->
<bean name="/queryItems.action" class="com.ssm.controller.ItemsHandler1" ></bean>
<!-- 處理器映射器 將bean的name作爲url進行查找,需要在配置Handler時指定beanname(就是url) -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
6.配置視圖解析器
<!-- 視圖解析器 解析JSP視圖 ,默認使用jstl 保證classpath下有jstl的包-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
附:
若出錯
HTTP Status 404 - /SpringStudy/items2.jsp
則表明:處理器映射器根據url 找到了Handler , 但 ModelAndView 中 setViewName 參數錯誤,找不到解析的jsp頁面