org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, “xxx“)

好大的坑:
今天封装一个povo,就在写代码一切正常的时候,重定向出现了一个问题,报了一个莫名其妙的错,错误信息:(org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, “employeeName”)),
搞了好久只解决了最终的问题,但是没有搞懂为什么会出现这样的一个错误,在正常入参查询的时候如下代码;

@RequestMapping("/getFiles")
    public String getFiles(EmployeeAndProgram employee, Model model){
        List<Employee> list =  fileService.getFiles(employee);
        model.addAttribute("file",list);
        return "file/file";
    }

这样简单的查询是没有问题的(后台是动态sql)
在这里插入图片描述
但是问题来了经过重定向为什么employee中的属性为什么跟直接调用多个不一定样呢?(没搞懂)
在这里插入图片描述
问题就出在这里,但是自己一直没想明白为什么会出现这样的情况>带一段代码
控制器的部分代码:

    @Autowired
    private FileService fileService;
    @Autowired
    private EmployeeService employeeService;
    @RequestMapping("/getFiles")
    public String getFiles(EmployeeAndProgram employee, Model model){
        List<Employee> list =  fileService.getFiles(employee);
        model.addAttribute("file",list);
        return "file/file";
    }
    @RequestMapping("/insertEmployee2")
    public String insert(Employee employee){
        employeeService.insertEmployee(employee);

        return "redirect:/getFiles";
        
    }

povo的代码:

package com.rlw.myproject.povo;

import com.rlw.myproject.bean.Employee;
import com.rlw.myproject.bean.Program;

public class EmployeeAndProgram {
    private Employee employee;
    private Program program;

    public EmployeeAndProgram() {
    }

    public EmployeeAndProgram(Employee employee, Program program) {
        this.employee = employee;
        this.program = program;
    }

    public Employee getEmployee() {
        return employee;
    }

    public void setEmployee(Employee employee) {
        this.employee = employee;
    }

    public Program getProgram() {
        return program;
    }

    public void setProgram(Program program) {
        this.program = program;
    }

    @Override
    public String toString() {
        return "EmployeeAndProgram{" +
                "employee=" + employee +
                ", program=" + program +
                '}';
    }
}

Employee的部分代码:

package com.rlw.myproject.bean;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
//import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import  java.util.Date;
import java.util.List;
public class Employee{
    private Integer employeeId;
    private String employeeName;
    private String employeeCardid;
    private String employeeStatus;
    private String employeeDepartment;
    private String employeeWorkplace;
    private String employeeSex;
    private String employeeSchool;
    //新增
    private String id;
}

最后还是使用了动态sql,加了一个判断条件解决的问题
在这里插入图片描述

总结:问题的主要原因就是出在重定向后入参的内容不一样,重定向之后入参povo与简单类型有异同。至于为什么不一样这里没有搞明白,如果有大神懂的话,方便评论让小白的我学习学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值