博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC07处理器方法的返回值
阅读量:7188 次
发布时间:2019-06-29

本文共 8384 字,大约阅读时间需要 27 分钟。

@Controller@RequestMapping("/student")public class StudentController {        /**     * 返回值是string的内部视图       */    @RequestMapping("/add")    public  String  add(){        System.out.println("进入了add");        return  "success";    }        /**     * 返回值是string的外部视图      */    @RequestMapping("/taobao")    public  String  taobao(){        System.out.println("进入了taobao");        return  "taobao";    }    /**     * 没有返回值  转发到内部视图     */    @RequestMapping("/request")    public  void  request(HttpServletRequest request,HttpServletResponse response){        System.out.println("进入了request");        //转发        try {            request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);        } catch (ServletException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 没有返回值  重定向到内部视图     */    @RequestMapping("/response")    public  void  response(HttpServletRequest request,HttpServletResponse response){        System.out.println("进入了response");        //重定向        try {            /**             * 重定向是  客户端的  行为!             * 能直接访问 web-inf ???  不行!             * response.sendRedirect("WEB-INF/jsp/success.jsp");             * 重定向到另一个方法 然后 那个方法做跳转!             *              */            response.sendRedirect("success.jsp");  //前提是根目录下有 success.jsp                        /**             * 这时候的路径http://localhost:8080/springmvc08/student/success.jsp             * 为什么会有student/这一层目录             * 原因:             *    用户点击的是 student/response             *    系统会默认拿到student/ 当成目前的路径!             *    再做重定向的时候会默认加上student/             */        } catch (IOException e) {            e.printStackTrace();        }    }}
  
学生姓名:
年龄:
@Controller@RequestMapping("/student")public class StudentController {        /**     * 转发是默认的格式     * 01.看路径     * 02.看数据是否传递     */    @RequestMapping("/addRequest")    public  ModelAndView  addRequest(Student student){        System.out.println("进入了addRequest");       ModelAndView  mv=new ModelAndView();        mv.addObject("student", student).setViewName("success");        return  mv;    }        /**     * 重定向     * 01.客户端行为 不能访问WEB-INF     * 02.以访问的路径为准,所以上个例子中的student/  会出现!     * 03.如果使用重定向 不加/  就是以上次访问的路径为准     *    如果加上了/    就是以项目的跟路径为准     */    @RequestMapping("/addResponse")    public  ModelAndView  addResponse(Student student){        System.out.println("进入了addResponse");        ModelAndView  mv=new ModelAndView();        //需要在 webroot下 创建  success.jsp        mv.addObject("student", student).setViewName("redirect:/success.jsp");        return  mv;    }    /**     * 跳转到内部方法     */    @RequestMapping("/changeMethod")    public  String  changeMethod(Student student){        System.out.println("进入了changeMethod");        ModelAndView  mv=new ModelAndView();        mv.addObject("student", student);        //return  "redirect:list";   重定向 不能使用  /  跳转到当前controller中的list方法 ! 数据丢失        return  "forward:list";//  转发list方法   数据肯定保留    }        @RequestMapping("/list")    public  String  list(Student student){        System.out.println("进入了list");          System.out.println(student.getName());        System.out.println(student.getAge());        return  "success";    }    }

==================接收并返回json数据======================

需要导入jquery和 Gson的jar包

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
index.jsp页面
springmvc-servlet.xml文件
@Controller@RequestMapping("/user")public class MyController {    @RequestMapping("doAjax")    public void doAjax(String name, int age, HttpServletResponse response)            throws IOException {        System.out.println("进入了doAjax......");        System.out.println(name);        System.out.println(age);        // 放入map集合        Map
map = new HashMap
(); map.put("name", name); map.put("age", age); // response.setHeader("Content-type", "text/html;charset=utf-8"); response.setContentType("application/json"); // 设置返回的是json页面 Gson gson = new Gson(); String json = gson.toJson(map); System.out.println("json=====" + json); // 把json数据返回给界面 PrintWriter writer = response.getWriter(); writer.print(json); }}
Controller中的代码

=================ajax验证用户名是否存在====================

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'success.jsp' starting page        

json验证

用户名:
创建一个对应的login.jsp
/**     * 用户名验证 ajax     */    @RequestMapping("/addUser")    public void doAjax(String name, HttpServletResponse response)            throws IOException {        System.out.println("进入了addUser......");        System.out.println(name);        boolean flag = false;        if (name.equals("admin")) {            flag = true;        }        response.setContentType("application/json"); // 设置返回的是json页面        Gson gson = new Gson();        String json = gson.toJson(flag);        System.out.println("json=====" + json);        // 把json数据返回给界面        PrintWriter writer = response.getWriter();        writer.write(json);    }
在Controller中增加代码

==================处理器返回Object对象=====================

导入需要的Jackson   jar包 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
index.jsp页面
package cn.bdqn.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.bind.annotation.ResponseBody;import cn.bdqn.bean.User;@Controller@RequestMapping("/user")public class MyController {    /**     * 01.返回的是一个Object对象     * @return     */    /**    @RequestMapping("/doAjax")        @ResponseBody        // 把我们的返回的数据 放在相应体中        public Object doAjax() {            System.out.println("进入了doAjax......");            return 45454.2515;        }*/    /**     * 02.返回的是一个Object对象     * produces :响应的界面格式     */    /**@RequestMapping(value = "/doAjax", produces = "text/html;charset=utf-8")    @ResponseBody    // 把我们的返回的数据 放在相应体中    public Object doAjax() {        System.out.println("进入了doAjax......");        return "大家辛苦了";    }*/    /**     * 03.返回的是一个Object对象     */    /**@RequestMapping(value = "/doAjax")    @ResponseBody    // 把我们的返回的数据 放在相应体中    public Object doAjax() {        System.out.println("进入了doAjax......");        return new User("小黑", 50);    }*/    /**     * 04.返回的是一个Map集合     */    /**@RequestMapping(value = "/doAjax")    @ResponseBody    // 把我们的返回的数据 放在相应体中    public Object doAjax() {        System.out.println("进入了doAjax......");        Map
map = new HashMap
(); map.put("user1", new User("小黑1", 50)); map.put("user2", new User("小黑2", 50)); return map; }*/ /** * 05.返回的是一个list集合 */ @RequestMapping(value = "/doAjax") @ResponseBody // 把我们的返回的数据 放在相应体中 public Object doAjax() { System.out.println("进入了doAjax......"); List
list = new ArrayList
(); list.add(new User("小黑1", 50)); list.add(new User("小黑2", 60)); return list; }}
Controller代码

 

转载于:https://www.cnblogs.com/xtdxs/p/7097329.html

你可能感兴趣的文章
【Tools】maven安装
查看>>
每日一句(2014-9-11)
查看>>
【BZOJ】1665: [Usaco2006 Open]The Climbing Wall 攀岩(spfa)
查看>>
最长上升(不下降)子序列(详细,转)
查看>>
EF 6 调用存储过程时返回多结果集和OUTPUT参数问题
查看>>
oracle调优 浅析关联设计
查看>>
@功能的逻辑判断(原创)
查看>>
java异常处理
查看>>
SQL Server 的三种用户自定义函数
查看>>
nodejs文件操作笔记
查看>>
零零散散学算法之具体解释几种最短路径
查看>>
BDB (Berkeley DB)数据库简单介绍(转载)
查看>>
一款基于css3非常实用的鼠标悬停特效
查看>>
分布式存储系统sheepdog
查看>>
Ecshop与Jquery冲突的完美解决方案
查看>>
SQL Server 数据库设计规范
查看>>
sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
查看>>
Android中Application类用法
查看>>
(转)C#_WinForm接收命令行参数
查看>>
Java Web系列:JDBC 基础
查看>>