设备信息展示

作业二 设备信息展示


要求:将下面的代码按照springboot分层解耦的机制进行改写,实现设备列表的前端展示。

@RestController
public class DeviceController {
@RequestMapping("/listDev")
public Result list(){
    //1. 加载并解析emp.xml
    String file = this.getClass().getClassLoader().getResource("devices.xml").getFile();
    System.out.println(file);
    List<Device> devList = XmlParserUtils.parse(file, Device.class);
    System.out.println(devList);

    //2. 对数据进行转换处理 - DevState
    devList.stream().forEach(dev -> {
        //处理 DevState 1: 开, 0: 关
        String state = dev.getDevState();
        if("1".equals(state)){
            dev.setDevState("开");
        }else if("0".equals(state)){
            dev.setDevState("关");
        }
    });
    //3. 响应数据
    return Result.success(devList);
   }
}

1.将代码分成三层架构,Controller,Service,Dao层,将代码分层解耦。

分别建立controller,service,dao的包,在包下建立class文件

在这里插入图片描述

2.Controller层代码:

@RestController
public class DeviceController {
private DeviceService deviceService = new DeviceService();
@RequestMapping("/list.dev")
public Result list(){
    List<Device>devList = deviceService.ListDevice();


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

@Autowired调用容器中DevService的实例化对象,函数调用DevService的listService()函数。

3.Service层代码:

编写实例DevService,调用Dao层的DevDao实例化对象,函数调用DevDao的listDao()函数,将取到的数据设置状态开关,再返回类到Controller层。

public class DeviceService {
private DeviceDao devDao = new DeviceDao();
public List<Device> ListDevice(){
    List<Device>devList =devDao.ListDao();
    //2. 对数据进行转换处理 - DevState
    devList.stream().forEach(dev -> {
        //处理 DevState 1: 开, 0: 关
        String state = dev.getDevState();
        if("1".equals(state)){
            dev.setDevState("开");
        }else if("0".equals(state)){
            dev.setDevState("关");
        }
    });
    return devList;
  }
} 

4.Dao层代码:

编写listDao函数,读取xml文件内容,返回到Service层调用。

public class DeviceDao {
public List<Device> ListDao(){
    //1. 加载并解析devices.xml
    String file = Objects.requireNonNull(this.getClass().getClassLoader().getResource("devices.xml")).getFile();
    System.out.println(file);
    List<Device> devList = XmlParserUtils.parse(file, Device.class);
    System.out.println(devList);
    return devList;
    }


}

5、Device实体和Result

Device

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Device {
  String devName;
  String devID;
  String image;
  String userName;
  String devState;
}

Result

public class Result {
  private Integer code ;//1 成功 , 0 失败
  private String msg; //提示信息
  private Object data; //数据 date
  public Result() {
}
  public Result(Integer code, String msg, Object data) {
      this.code = code;
      this.msg = msg;
      this.data = data;
  }
  public Integer getCode() {
      return code;
  }
  public void setCode(Integer code) {
      this.code = code;
  }
  public String getMsg() {
      return msg;
  }
  public void setMsg(String msg) {
      this.msg = msg;
  }
  public Object getData() {
      return data;
  }
  public void setData(Object data) {
      this.data = data;

  }
  public static Result success(Object data){
      return new Result(1, "success", data);
  }
  public static Result success(){
      return new Result(1, "success", null);
  }
  public static Result error(String msg){
      return new Result(0, msg, null);
  }
}

6.插入xml文件到resource包下。

在这里插入图片描述

dev.html,devices.html文件以及img包中的图片分享在网盘中
链接:https://pan.baidu.com/s/1oqTeAWghU9_16MqNe2KbWg?pwd=1234
提取码:1234

7.运行IDEA,打开浏览器输入http://localhost:8888/dev.html 查看设备网页信息。

(1)我的原端口号已被占用,这里将端口号手动进行了修改
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值