Bootstrap

请求响应~响应

介绍

        新手程序员一枚,渴望成为大神,来点关注来点赞,给我介绍几个大神也行,球球了。


        主要记录自己的学习过程,将之前的笔记进行整理并分享一下,有错误请指出,谢谢各位大佬爷们的观看。

        下面开始分享我的笔记


概述

规范

案例

需求

  • 加载并解析emp.xml文件中的数据,完成数据处理,并在页面中展示。

步骤

  1. 在pom.xml文件中引入dom4j的依赖,用于解析XML文件。

  2. 引入资料中提供的解析XML的工具类XMLParserUtils、对应的实体类EMP、XML文件emp.xml。

  3. 引入资料中提供的静态页面文件,放在resources下的static目录下

  4. 编写Controller程序,处理请求,响应数据。

实现

  • Maven

  • <!--        解析XML-->
            <dependency>
                <groupId>org.dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>2.1.3</version>
            </dependency>
  • 工具类utils

  • package com.testpeople.utils;
    
    //功能:解析XML文件
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    import java.io.File;
    import java.lang.reflect.Constructor;
    import java.util.ArrayList;
    import java.util.List;
    
    public class XmlParserUtils {
        public static <T> List<T> parse(String file, Class<T> targetClass) {
            ArrayList<T> list = new ArrayList<T>();
            try {
                //1.获取一个解析器对象
                SAXReader saxReader = new SAXReader();
                //2.利用解析器把xml文件加载到内存中,并返回一个文档对象
                Document document = saxReader.read(new File(file));
                //3.获取到根标签
                Element rootElement = document.getRootElement();
                //4.通过根标签来获取 user 标签
                List<Element> elements = rootElement.elements("emp");
    
                //5.遍历集合,得到每一个 user 标签
                for (Element element : elements) {
                    //获取 name 属性
                    String name = element.element("name").getText();
                    //获取 age 属性
                    String age = element.element("age").getText();
                    //获取 image 属性
                    String image = element.element("image").getText();
                    //获取 gender 属性
                    String gender = element.element("gender").getText();
                    //获取 job 属性
                    String job = element.element("job").getText();
    
                    //组装数据
                    Constructor<T> constructor = targetClass.getDeclaredConstructor(String.class, Integer.class, String.class, String.class, String.class);
                    constructor.setAccessible(true);
                    T object = constructor.newInstance(name, Integer.parseInt(age), image, gender, job);
    
                    list.add(object);
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return list;
        }
    }
  • 前端页面

编写

package com.testpeople.controller;

//响应数据类
import com.testpeople.pojo.Emp;
import com.testpeople.pojo.Result;
import com.testpeople.utils.XmlParserUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class EmpController {

    @RequestMapping("/listEmp")
    public Result list(){

        //加载并解析XML文件
        String filePath = this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(filePath);
        List<Emp> empList = XmlParserUtils.parse(filePath, Emp.class);


        //对数据进行处理
        empList.stream().forEach(emp ->{
            //处理gender~男:1  女:2
            String gender = emp.getGender();
            if ("1".equals(gender)){
                emp.setGender("男");
            } else if ("2".equals(gender)) {
                emp.setGender("女");
            }

            //处理job~讲师:1    班主任:2   就业指导:3
            String job = emp.getJob();
            if ("1".equals(job)){
                emp.setJob("讲师");
            } else if ("2".equals(job)) {
                emp.setJob("班主任");
            } else if ("3".equals(job)) {
                emp.setJob("就业指导");
            }

        });
        //响应数据
        return Result.success(empList);

    }


}

测试

  • postman

展示


以上是学习的第八弹笔记,也是后端开始的第四弹笔记,感兴趣的关注一手,后面会慢慢更新笔记。

项目位置!!!!!

https://gitee.com/zsjnew/admin_web_project.git

马上公司组织爬山了,记得关注哦,感谢各位老爷们!!!

;