• SpringMVC05 return (Json)


    这里要主要的是js文件要引入,文中不做解释

      1.导入包

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <parent>
            <artifactId>SpringMVC</artifactId>
            <groupId>cn.happy</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>SpringMVC05Return</artifactId>
        <packaging>war</packaging>
        <name>SpringMVC05Return Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <!--spring对应的版本号-->
            <spring.version>4.2.1.RELEASE</spring.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.0</version>
                <scope>test</scope>
            </dependency>
            <!--引入需要的spring 核心jar-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.15</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
            <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>
        </dependencies>
        <build>
            <finalName>SpringMVC05Return</finalName>
        </build>
    </project>

      2.配置中央调度器(web.xml)

    <!DOCTYPE web-app PUBLIC
            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
            "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
        <!--编码的过滤器-->
        <filter>
            <filter-name>CharactorEncoding</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>utf-8</param-value>
            </init-param>
            <init-param>
                <param-name>forceEncoding</param-name>
                <param-value>true</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharactorEncoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!--context-param-->
        <!--config a forward controller-->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--init-param-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
            </init-param>
            <!--load-on-startup-->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <!--/  it means  we can intercept every request (contains  and *.do and *.css and *.jpg)-->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>

      3.配置映射器(spring-mvc.xml)

    <?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="cn.happy.controller"/> <!--根据注解来寻找路径--> <mvc:annotation-driven/> </beans>

      4.实体类

    public class UserInfo {
        private String name;
        private Integer age;
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
    }

      5.1:视图页面index.jsp

    <%@page contentType="text/html" pageEncoding="UTF-8" isELIgnored="false" %>
    <html>
    <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
    <script tpye="text/javascript">
        $(function () {
            $("[type=button]").click(function () {
                $.ajax({
                    url: "/firstJson",        这个访问路径可以根据需求更换
                    type: "post",
                    success: function (data) {
                        $.each(data, function (i, dom) {
                            alert(dom.name);
                        })
                    }
                })
            })
        })
    </script>
    <body>
    <h2>Hello World!</h2>
    <input type="button" value="点我发送Ajax"/>
    </body>
    </html>

      5.2:视图页面list.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>List</h1>
    </body>
    </html>

      5.3:视图页面login.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="/second" method="post">
        用户名:<input name="name"/>
        年龄:<input name="age"/>
        <input type="submit" value="登录"/>
    </form>
    </body>
    </html>

      5.4视图页面welcome.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    <html>
    <body>
    <h2>Hello World!</h2>
    <h1>欢迎${param.name},年龄:${param.age}</h1>
    </body>
    </html>

      6.处理器(一)

    import cn.happy.bean.UserInfo;
    import com.alibaba.fastjson.JSON;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    @Controller
    public class FirstController {
        @RequestMapping("/toJson")
        public void getJson(HttpServletRequest request,HttpServletResponse response) throws IOException {
            List<UserInfo> list=new ArrayList<UserInfo>();
            UserInfo u1=new UserInfo();
            u1.setName("微冷的雨");
            u1.setAge(18);
            UserInfo u2=new UserInfo();
            u2.setName("训练营");
            u2.setAge(28);
            list.add(u1);
            list.add(u2);
    
            //泛型转json
            String data = JSON.toJSONString(list);
    
            //我想将data打回浏览器
            response.getWriter().write(data);
        }
    }

      6.2处理器(二)

    import cn.happy.bean.UserInfo;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    @Controller
    public class JaksonController {
        //返回List集合
        @RequestMapping("/firstJson")
        @ResponseBody
        public Object doFirst() {
            List<UserInfo> list = new ArrayList<UserInfo>();
            UserInfo u1 = new UserInfo();
            u1.setName("微冷的雨");
            u1.setAge(18);
            UserInfo u2 = new UserInfo();
            u2.setName("训练营");
            u2.setAge(28);
            list.add(u1);
            list.add(u2);
            return list;
        }
    //返回整型
        @RequestMapping("/secondJson")
        @ResponseBody
        public Object doSecond() {
            return 1;
        }
    //返回数字型字符串
        @RequestMapping("/thirdJson")
        @ResponseBody
        public Object doThird() {
            return "1";
        }
    //返回对象
        @RequestMapping("/fourJson")
        @ResponseBody
        public Object doFour() {
            UserInfo u1 = new UserInfo();
            u1.setName("微冷的雨");
            u1.setAge(19);
            return u1;
        }
        @RequestMapping("/fiveJson")
        @ResponseBody
        public Object doFive() {
            Map<String, Integer> map = new HashMap<String, Integer>();
            map.put("1", 12);
            map.put("2", 23);
            Map<String, UserInfo> map1 = new HashMap<String, UserInfo>();
            UserInfo u1 = new UserInfo();
            u1.setName("微冷的雨");
            u1.setAge(32);
            UserInfo u2 = new UserInfo();
            u2.setName("训练营");
            u2.setAge(34);
            map1.put(u1.getName(), u1);
            map1.put(u2.getName(), u2);
            return map1;
        }
        @RequestMapping("/six")
        public String doSix(Model model) {
            model.addAttribute("msg", "微冷的雨");
            //转发到页面(默认值)
            return "/index.jsp";
        }


    //转换到另外一个控制器方法
        @RequestMapping("/seven")
        public String doSeven(Model model) {
            model.addAttribute("msg", "微冷的雨");
            return "forward:targetMethod";
        }
    //转发到页面
        @RequestMapping("/targetMethod")
        public String doEight(Model model) {
            System.out.println("=============");
            return "/list.jsp";
        }


    //重定向
    @RequestMapping("/second")
    public String doSecond(Model model, UserInfo info) {
    model.addAttribute("name", info.getName());
    model.addAttribute("age", info.getAge());
    return "redirect:/welcome.jsp";
    }
    }
  • 相关阅读:
    动画处理<并行和串行>
    flutter 动画 practice
    flutter AnimationBuilder
    flutter 动画
    Flutter Animation AnimatedBuilder
    Flutter 与 Android 的交互
    Flutter:教你用CustomPaint画一个自定义的CircleProgressBar
    Flutter裁剪图片
    Flutter 实现图片裁剪
    soundpool
  • 原文地址:https://www.cnblogs.com/Chenghao-He/p/7768586.html
Copyright © 2020-2023  润新知