Bean属性“ xxx”不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配?

时间:2019-08-14 09:06:07

标签: java html spring spring-boot thymeleaf

我一直收到此错误,现在我不确定为什么。

  

由以下原因引起:org.springframework.beans.NotReadablePropertyException:Bean类[java.util.ArrayList]的无效属性“ owner”:Bean属性“ owner”不可读或具有无效的getter方法:返回类型为getter与setter的参数类型匹配吗?

我尝试使用 let tabVC = AppStrings.appStoryBoard.instantiateViewController(withIdentifier: "aboutReviewViewControllerID") as! AboutReviewViewController viewControllerArray.append(tabVC) segmentedPager = MXSegmentedPager(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: view.frame.height)) view.addSubview(segmentedPager) segmentedPager.dataSource = self segmentedPager.delegate = self segmentedPager.backgroundColor = .clear segmentedPager.parallaxHeader.view = topBGView segmentedPager.parallaxHeader.mode = .fill segmentedPager.parallaxHeader.height = topBGView.frame.height segmentedPager.parallaxHeader.minimumHeight = 10 segmentedPager.parallaxHeader.delegate = self segmentedPager.reloadData() [![enter image description here][1]][1]func segmentedPager(_ segmentedPager: MXSegmentedPager, viewForPageAt index: Int) -> UIView { return viewControllerArray[index].view } func segmentedPager(_ segmentedPager: MXSegmentedPager, segueIdentifierForPageAt index: Int) -> String { return "" }

th:field="*{owner}"

th:field="*{Owner}",但仍然出现相同的错误。

控制器

th:field="*{setOwner}"

型号

@RequestMapping("/wqrms/customer/create")
public String customerCreate(Model model) {
    List<Customer> customer = customerService.listAll();
    model.addAttribute("customer", customer);
    return "/views/wqrms/customer/create";
}

百里香叶

@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String owner;
public long getId() { 
    return id; 
}
public void setId(long id) {
    this.id = id; 
}
public String getOwner() { 
    return owner; 
}
public void setOwner(long id) {
    this.owner = owner; 
}
}

4 个答案:

答案 0 :(得分:1)

您为getOwner错误编写了代码。所有者的数据类型为字符串,并且您已将该方法声明为long。 请重写下面的代码。

public String getOwner() { 
return owner; 
}

提示-在编码时使用IDE,它将帮助您轻松解决这些编译时错误。

答案 1 :(得分:1)

为实体类创建Getter&Setter时出错。以及程序如何成功编译。因为里面

public long getOwner() { 
    return owner; 
}

您正在使用的方法将long作为返回类型,但是从getter返回String。 像这样重写您的课程

@Entity
public class Customer {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String owner;

public long getId() { 
    return id; 
}
public void setId(long id) {
    this.id = id; 
}
public String getOwner() { 
    return owner; 
}
public void setOwner(String owner) {
    this.owner = owner; 
}
}

或者您可以选择任何IDE,例如Eclipse,IntelliJ来编写类。

答案 2 :(得分:0)

问题已解决!该控制器应该用于列出客户。将其更改为

`@RequestMapping("/wqrms/customer/create")
 public String customerCreate(Model model) {
     Customer customer = new Customer();
     model.addAttribute("customer", customer);
     return "/views/wqrms/customer/create";
}`

谢谢大家!

答案 3 :(得分:-1)

POJO中的错误获取器/设置器。

有关使代码更具可读性的经典示例。

由于不必要的样板冗余代码而发生。

使用this-(LOMBOK)依赖项/ jar,将删除所有降低可读性的代码。 龙目岛也是弹簧启动启动器的一部分。