1. 程式人生 > >springMVC入門截圖

springMVC入門截圖

head 視圖解析 不能 .get 完整 setview app arraylist ati

技術分享

技術分享

技術分享

----------------------------------------------------

在web.xml中配置前端控制器(系統提供的一個servlet類 只需配置即可 無需程序員開發 )

技術分享

--------------------------------------------------------------

技術分享

------------------------

非註解適配器

技術分享

使用A適配器能夠執行實現Controller接口的handler

package org.ssm.controller;

import java.util.ArrayList;
import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import org.ssm.po.Items; //實現controller接口的處理器 public class ItemsController1 implements
Controller{ public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { // TODO Auto-generated method stub //調用service查找 數據庫,查詢商品列表,這裏使用靜態數據模擬 List<Items> itemsList = new ArrayList<Items>(); //向list中填充靜態數據
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); //這個方法需要返回modelAndView 所以創建 ModelAndView modelAndView=new ModelAndView(); //這個方法九相當於request.setAttribute modelAndView.addObject("itemsList", itemsList); //指定視圖 modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); return modelAndView; } }

使用B適配器能夠執行 實現HttpRequestHandler接口的handler

package org.ssm.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.HttpRequestHandler;
import org.ssm.po.Items;

public class ItemsController2 implements HttpRequestHandler{
    //這個handler對應的適配器類是 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
    public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        //調用service查找 數據庫,查詢商品列表,這裏使用靜態數據模擬
        List<Items> itemsList = new ArrayList<Items>();
        //向list中填充靜態數據
        
        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);
        arg0.setAttribute("itemsList", itemsList);
        //早期servlet程序轉發操作
        arg0.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(arg0, arg1);
        
        //使用哪個適配器都可以  但是這個適配器 可以通過response對象 來設置響應數據的格式
        
    }

}

----------

jsp頁面

技術分享

--------------------

非註解映射器

技術分享

技術分享

-----------------------------

視圖解析器

技術分享

-f---------------------

註解映射器、適配器

技術分享

------------------------------------

技術分享

技術分享

使用註解方式開發的handler

package org.ssm.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.ssm.po.Items;

//使用註解開發的handler 不需要實現接口  這個註解和spring階段 把action對象註入bean容器時使用的註解一樣  導入的包也一樣
//要明白  這裏就是把該headler註入進spring容器中
@Controller
//使用註解標識這是一個handler
public class ItemsController3 {
    //這裏邊可以編寫任意多個方法  沒有之前實現指定的接口時  只能覆寫指定接口的局限性
    //使用註解標識映射路徑 即將來訪問的路徑  建議映射路徑和類名一樣  action寫不寫都行
    //@RequestMapping實現對query1方法的一個映射   一個方法對應一個url 
    @RequestMapping("/query1.action")
    public ModelAndView query1()throws Exception{
        //調用service查找 數據庫,查詢商品列表,這裏使用靜態數據模擬
        List<Items> itemsList = new ArrayList<Items>();
        //向list中填充靜態數據
        
        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);
        //創建modelAndView
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject(itemsList);
        //指定視圖
        modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
        return modelAndView;
    }

}

然後再配置文件中配置該handler 推薦使用註解掃描方式(對標記@Controller類中標識有@RequestMapping的方法進行映射 在@RequestMapping裏邊定義映射的url)

否則 一個handler類就需要配置一個bean

技術分享

--------------------------------

視圖解析器的前綴和後綴配置

技術分享

註意:如果配置了前綴和後綴 那麽 在handler設置視圖路徑的時候 就不能在指定完整的路徑了 但是有一個handler除外

不能指定完整路徑的handler:1.實現Controller接口 以及2.註解方式實現的handler

1.

技術分享

2.

技術分享

路徑為:

技術分享

在配置了前綴和後綴之後 仍然需要指定完整路徑的handler:實現了HttpRequesstHandler接口的handler

技術分享

路徑仍然為:

技術分享

----------------------------

springMVC入門截圖