码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC入门截图

时间:2017-08-27 16:15:33      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:forward   页面   前端   app   注意   not   get   笔记   电脑   

技术分享

 

技术分享

技术分享

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

在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入门截图

标签:forward   页面   前端   app   注意   not   get   笔记   电脑   

原文地址:http://www.cnblogs.com/Joke-Jay/p/7436562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!