请求响应-响应

请求响应-响应_第1张图片
前面已经说了我们重点关注的就是XXXcontroller类
进行请求接收
和响应
接收参数那些我们在请求部分讲过了
现在我们来处理响应部分

响应

设置响应数据

可以发现其实我们之前都是设置过的
比如那个Hello World
浏览器都接收到了且在浏览器上进行了输出
这里的是返回值作为这个响应的
这样的操作需要一个注解ResponseBody
这个注解既可以作用在方法上又可以作用在类上

请求响应-响应_第2张图片
比如这个就是作用在类上
这个类里所有方法的返回值都会作为响应值返回给浏览器
这里的@RestController=@Controller+@ResponseBody两个注解的合并
请求响应-响应_第3张图片
然后其实我们那个开发中那个规范就是规定了
每个请求路径对应获取的东西和内部操作

响应数据类型

请求响应-响应_第4张图片

可以发现每一个接口响应的路径很随意
需要统一一下
我们就新建一个类Result 包含code msg 和 data属性
然后把返回值全设置为Result对象
请求响应-响应_第5张图片
对应具体类

请求响应-响应_第6张图片
请求响应-响应_第7张图片

最后因为是对象所以会封装成json类型的数据
请求响应-响应_第8张图片

案例

解析emp.xml文件
返回对应格式(渲染完后的)
请求响应-响应_第9张图片

步骤

请求响应-响应_第10张图片
1.导入解析xml文件的依赖
dom4j
请求响应-响应_第11张图片
2.写工具类-主要运用我们dom4j的方法进行解析文件
并且进行封装到我们的集合里并返回
请求响应-响应_第12张图片
3.然后我们引入一个实体类进行员工数据的封装-xml文件里面介绍对应的员工对象
第一个和第二个参数分别的解析的xml文件
第二个是进行数据封装的类的class对象
请求响应-响应_第13张图片
4.引入xml文件到resource
请求响应-响应_第14张图片
5.引入我们的一些前端页面(放到resources里的static目录)
请求响应-响应_第15张图片
注意:SpringBoot的静态资源(html,css,js等静态资源)存放目录需要一定规范1.classpath:/static中2.classpath:/public(resources新建一个public目录放进去)3.classpath:/resources(resources新建一个resources目录放进去(没错就是套的同名))
对于maven我们的classpath路径就是resources

6.编写controller程序

package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.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(){
        //1. 加载并解析emp.xml
        String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp> empList = XmlParserUtils.parse(file, Emp.class);

        //2. 对数据进行转换处理 - gender, job
        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("就业指导");
            }
        });

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

}

效果

postman获取数据
请求响应-响应_第16张图片

结合前端页面
注意我们不需要加static路径,应为它本来就是存放静态页面的
而且我们的前端代码其实可以看到他原本是没有写数据的,就是根据后端获取的数据和js然后往前端页面上一个一个填这样
实现了动态数据这种效果
请求响应-响应_第17张图片
这行代码就是重点
就是它通过哪个方法(请求路径)获取数据
我们写的访问xml数据是listEmp所以这里也需要是listEmp
请求响应-响应_第18张图片

请求响应-响应_第19张图片

你可能感兴趣的:(JavaWeb,spring,boot)