• SpringMVC (八)SpringMVC返回值类型


    SpringMVC的返回值类型有MedelAndView,String,void,Object数值型,集合类型等等

    前两种我们之前写案例的时候一直在用,现在看一下返回值是void

    第一种:返回viod

    返回值是void的话,就要结合ajax来写

    准备一个用户类

    package demo09Return;
    
    /**
     * Created by mycom on 2018/3/26.
     */
    public class UserInfo {
        private String username;
        private String password;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }

    和控制器类

    package demo09Return;
    
    import com.alibaba.fastjson.JSON;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by mycom on 2018/3/26.
     */
    @Controller
    public class ReturnController {
    
        @RequestMapping("/one")
        public void doFirst(HttpServletResponse response) throws IOException {
            List<UserInfo> list=new ArrayList<UserInfo>();
            UserInfo user=new UserInfo();
            user.setUsername("");
            user.setPassword("1225");
            list.add(user);
            String data = JSON.toJSONString(list);
            response.getWriter().write(data);
    
        }
    }

    在页面上

    <%--
      Created by IntelliJ IDEA.
      User: mycom
      Date: 2018/3/26
      Time: 17:13
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.min(1).js"></script>
    <script type="text/javascript">
        $(function () {
            $("input").click(function () {
                $.ajax({
                    url:"/one",
                    type:"POST",
                    success:function (data) {
                        $.each(eval("("+data+")"),function (i,dom) {
                            alert(dom.username);
                        })
                    }
                })
            })
        })
    </script>
    <head>
        <title>Title</title>
    </head>
    <body>
    <input type="button" value="按钮">
    </body>
    </html>

    在配置文件中

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:component-scan base-package="demo09Return"></context:component-scan>
    
        <!--视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    
    
    </beans>

    注意不要忘记修改web.xml中的classpath的值

     第二种:返回Object

    引入jar

    <!--返回Object类型的jar-->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.8.1</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.5.1</version>
            </dependency>
     //返回int
        @RequestMapping("/first")
        @ResponseBody
        public Object doFirst(){
            return 1;
        }
    
        //返回String
        @RequestMapping(value = "/second",produces = "text/html;charset=UTF-8")
        @ResponseBody
        public Object doSecond(){
            return "明天会更好";
        }
    
        //返回对象
        @RequestMapping(value = "/third")
        @ResponseBody
        public Object doThird(){
            UserInfo user=new UserInfo();
            user.setUsername("");
            user.setPassword("123456");
            return user;
        }
    
        //返回集合
        @RequestMapping(value = "/four")
        @ResponseBody
        public Object doFour(String name){
            List<UserInfo> list=new ArrayList<UserInfo>();
            UserInfo user=new UserInfo();
            user.setUsername("");
            user.setPassword("1225");
            UserInfo user2=new UserInfo();
            user2.setUsername(name);
            user2.setPassword("123456");
            list.add(user);
            list.add(user2);
            String data = JSON.toJSONString(list);
           return list;
        }
    
    
        //返回map
        @RequestMapping(value = "/five")
        @ResponseBody
        public Object doFive(){
            Map<String,UserInfo> map=new HashMap<String, UserInfo>();
            UserInfo user=new UserInfo();
            user.setUsername("");
            user.setPassword("1225");
            UserInfo user2=new UserInfo();
            user2.setUsername("");
            user2.setPassword("123456");
            map.put(user.getUsername(),user);
            map.put(user2.getUsername(),user2);
            return map;
        }

    配置文件中:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:component-scan base-package="demo09Return"></context:component-scan>
    
        <!--视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    
        <!--注解驱动-->
        <mvc:annotation-driven/>
    
    
    </beans>

    测试页面:

    <%--
      Created by IntelliJ IDEA.
      User: mycom
      Date: 2018/3/26
      Time: 17:13
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.min(1).js"></script>
    <script type="text/javascript">
        /*$(function () {
            $("input").click(function () {
                $.ajax({
                    url:"/four",
                    type:"POST",
                    success:function (data) {
                        $.each(function (i,dom) {
                            alert(dom.username);
                        })
                    }
                })
            })
        })*/
    
        $(function () {
            $("input").click(function () {
                $.ajax({
                    url:"/five",
                    type:"POST",
                    success:function (data) {
                        $.each(function (i,dom) {
                            alert(dom.username);
                        })
                    }
                })
            })
        })
    </script>
    <head>
        <title>Title</title>
    </head>
    <body>
    <input type="button" value="按钮">
    </body>
    </html>
  • 相关阅读:
    几种排序(c#实现)
    仿 MVC 三大特性
    自定义顺序表ArrayList
    MSMQ消息队列
    IIS 负载均衡(ARR)
    AOP 编程
    SqlServer 存储过程
    mac下mysql5.7.10密码问题
    gearman参数说明
    增加响应header让ajax支持跨域
  • 原文地址:https://www.cnblogs.com/my-123/p/8654603.html
Copyright © 2020-2023  润新知