zoukankan      html  css  js  c++  java
  • spring3 mvc:方法返回值的学习

    新建后台代码用以测试返回类型,在这里我新建的如下:

    /**    
     * 项目名称:Spring3mvc demo   
     * Copyright ? 2010-2012 spartacus.org.cn All Rights Reserved   
     */    
    package cn.org.spartacus.spring;   
      
    import javax.servlet.http.HttpServletRequest;   
    import javax.servlet.http.HttpServletResponse;  
    import org.springframework.stereotype.Controller;   
    import org.springframework.web.bind.annotation.RequestMapping;   
    import org.springframework.web.bind.annotation.RequestMethod;   
    import org.springframework.web.servlet.ModelAndView;  
      
    /**   
     * Description: TODO   
     * @author hankaibo   
     * @date 2012-11-4   
     * @version v1.0   
     */   
     @Controller       
     //添加注解,这样配置文件就可以找到它了。   
     public class ReturnController {       
     }  
    

      1,测试ModelAndView类型的返回。在代码中添加如下方法:

    /**   
     * 项目名称:Spring3mvc demo 
     * Copyright ? 2010-2012 spartacus.org.cn All Rights Reserved 
     */    
    package cn.org.spartacus.spring;    
      
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
      
    import org.springframework.stereotype.Controller;  
    import org.springframework.web.bind.annotation.RequestMapping;  
    import org.springframework.web.bind.annotation.RequestMethod;  
    import org.springframework.web.servlet.ModelAndView;  
      
    /** 
     * Description: TODO 
     * @author hankaibo 
     * @date 2012-11-4 
     * @version v1.0 
     */  
    @Controller     //添加注解,这样配置文件就可以找到它了。  
    @RequestMapping("return")  
    public class ReturnController {  
        /** 
         * <p>Description: 测试一,返回ModelAndVie类型</p> 
         * @param  
         * @return ModelAndView 
         */  
        @RequestMapping(value="test1",method=RequestMethod.GET)  
        public ModelAndView test1(HttpServletRequest request,HttpServletResponse response){  
            ModelAndView mav=new ModelAndView();  
            mav.setViewName("mav");     //设置返回的文件名  
            mav.addObject("mav", "我的返回类型是ModelAndView.");  
            return mav;  
              
        }  
      
    }  
    

      新建用于接受结果的前台页面mav.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>mav</title>  
    </head>  
    <body>  
        ${mav }  
    </body>  
    </html>  
    

      在success.jsp中添加触发条件

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>hello world</title>  
    </head>  
    <body>  
        Hello world!  
        <c:redirect url="/app/return/test1" />  
    </body>  
    </html>  
    

      地址栏输入测试,完成。

    最后完整版如下,Java代码:

    /**   
     * 项目名称:Spring3mvc demo 
     * Copyright © 2010-2012 spartacus.org.cn All Rights Reserved 
     */  
    package cn.org.spartacus.spring;  
      
    import java.util.Map;  
      
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
      
    import org.springframework.stereotype.Controller;  
    import org.springframework.ui.Model;  
    import org.springframework.ui.ModelMap;  
    import org.springframework.web.bind.annotation.RequestMapping;  
    import org.springframework.web.bind.annotation.RequestMethod;  
    import org.springframework.web.servlet.ModelAndView;  
    import org.springframework.web.servlet.View;  
      
    /** 
     * Description: TODO 
     *  
     * @author hankaibo 
     * @date 2012-11-4 
     * @version v1.0 
     */  
    @Controller  
    // 添加注解,这样配置文件就可以找到它了。  
    @RequestMapping("return")  
    public class ReturnController {  
        /** 
         * <p> 
         * Description: 测试一,返回ModelAndVie类型 
         * </p> 
         *  
         * @param 
         * @return ModelAndView 
         */  
        @RequestMapping(value = "test1", method = RequestMethod.GET)  
        public ModelAndView test1(HttpServletRequest request, HttpServletResponse response) {  
            ModelAndView mav = new ModelAndView();  
            mav.setViewName("return/mav"); // 设置返回的文件名  
            mav.addObject("mav", "我的返回类型是ModelAndView.");  
            return mav;  
      
        }  
      
        /** 
         * <p> 
         * Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面 
         * </p> 
         *  
         * @param 
         * @return Model 
         * @throws 
         */  
        @RequestMapping("test2")  
        public Model test2(Model model) {  
            model.addAttribute("model", "我的返回类型是Model");  
            return model;  
      
        }  
      
        /** 
         * <p> 
         * Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面 
         * </p> 
         *  
         * @param 
         * @return ModelMap 
         * @throws 
         */  
        @RequestMapping("test3")  
        public ModelMap test3(ModelMap modelMap) {  
            modelMap.addAttribute("modelMap", "我的返回类型是ModelMap");  
            return modelMap;  
        }  
      
        /** 
         * <p> 
         * Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面 
         * </p> 
         *  
         * @param 
         * @return Map 
         * @throws 
         */  
        @RequestMapping("test4")  
        public Map test4(Map map) {  
            map.put("map", "我的返回类型是Map");  
            return map;  
        }  
          
        /** 
         * <p>Description: TODO 返回的页面可以为pdf,excel等。</p> 
         * @param  
         * @return View 
         * @throws 
         */  
        @RequestMapping("test5")  
        public View test5(){  
            return null;  
        }  
          
        /** 
         * <p>Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面</p> 
         * @param  
         * @return void 
         * @throws 
         */  
        @RequestMapping("test6")  
        public void test6(Map<String,Object> map){  
            map.put("void","我的返回类型是void");  
        }  
        /** 
         * <p>Description: TODO</p> 
         * @param  
         * @return String 
         * @throws 
         */  
        @RequestMapping("test7")  
        public String test7(Map<String,Object> map){  
            map.put("string", "我的返回类型是String");  
            return "return/string";  
        }  
    }  
    

      jsp代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>hello world</title>  
    </head>  
    <body>  
        Hello world!  
        <c:redirect url="/app/return/test1" />  
        <%--   
        <c:redirect url="/app/return/test2" />  
        <c:redirect url="/app/return/test3" />  
        <c:redirect url="/app/return/test4" />  
        <c:redirect url="/app/return/test5" />  
        <c:redirect url="/app/return/test6" />  
        <c:redirect url="/app/return/test7" />  
         --%>  
    </body>  
    </html>  
    

      最后附上代码结构图:

  • 相关阅读:
    [转].net mvc + vuejs 的项目结构
    Outlook IMAP 修改PST文件存储路径
    VS2017 性能优化方法
    查询存储过程所需参数
    如何保障微服务架构下的数据一致性
    sqlserver批量给用户配置存储过程权限
    vue中刷新当前页面或重新加载的两种方法
    vue history模式下的微信支付,及微信支付授权目录的填写,处理URL未注册
    Vue 四行代码实现无感知上拉加载更多
    2019年前端必用正则(js)
  • 原文地址:https://www.cnblogs.com/wqsbk/p/5170808.html
Copyright © 2011-2022 走看看