gpt4 book ai didi

java - 无法使 messageSource 在 Pojo 类中工作

转载 作者:行者123 更新时间:2023-11-30 03:47:50 25 4
gpt4 key购买 nike

我无法使 messageSource 在 Pojo 类中工作,它会抛出空指针异常。然而,在所有其他类(即 Controller )中,服务 messageSource 工作正常。有人可以建议需要做什么吗?

@Autowired
private MessageSource messageSource;

我已经使用上面的代码片段 Autowiring 了 MessageSource。

public class ProposalWiseSelectionForm implements Serializable {

/**
*
*/
private static final long serialVersionUID = 1L;

@Autowired
private MessageSource messageSource;

private String txtPageHierarchy="";
private String txtLineOfBusiness;
private String txtProduct;
private String btn;
private String clickedGo="N";
private List arrLineOfBusiness=new ArrayList();
private List arrProduct=new ArrayList();
@Valid
private ArrayList documentList=initiateDocumentList();
private String txtPageMode="I";
private String enableDiscardBtn="N";
private String enableInsertBtn="N";
private String isDivVisible="N";
private int numApplicationType=1;


public ProposalWiseSelectionForm() {
}



public String getTxtPageHierarchy() {
return txtPageHierarchy;
}


public void setTxtPageHierarchy(String txtPageHierarchy) {
this.txtPageHierarchy = txtPageHierarchy;
}


public String getTxtLineOfBusiness() {
return txtLineOfBusiness;
}
public void setTxtLineOfBusiness(String txtLineOfBusiness) {
this.txtLineOfBusiness = txtLineOfBusiness;
}
public String getTxtProduct() {
return txtProduct;
}
public void setTxtProduct(String txtProduct) {
this.txtProduct = txtProduct;
}
public String getBtn() {
return btn;
}
public void setBtn(String btn) {
this.btn = btn;
}
public String getClickedGo() {
return clickedGo;
}
public void setClickedGo(String clickedGo) {
this.clickedGo = clickedGo;
}


public List getArrLineOfBusiness() {
return arrLineOfBusiness;
}

public void setArrLineOfBusiness(List arrLineOfBusiness) {
this.arrLineOfBusiness = arrLineOfBusiness;
}

public List getArrProduct() {
return arrProduct;
}

public void setArrProduct(List arrProduct) {
this.arrProduct = arrProduct;
}

public void setArrProduct(ArrayList arrProduct) {
this.arrProduct = arrProduct;
}
public ArrayList getDocumentList() {
return documentList;
}
public void setDocumentList(ArrayList documentList) {
this.documentList = documentList;
}
public String getTxtPageMode() {
return txtPageMode;
}
public void setTxtPageMode(String txtPageMode) {
this.txtPageMode = txtPageMode;
}





public String getEnableDiscardBtn() {
return enableDiscardBtn;
}


public void setEnableDiscardBtn(String enableDiscardBtn) {
this.enableDiscardBtn = enableDiscardBtn;
}


public String getEnableInsertBtn() {
return enableInsertBtn;
}


public void setEnableInsertBtn(String enableInsertBtn) {
this.enableInsertBtn = enableInsertBtn;
}


public String getIsDivVisible() {
return isDivVisible;
}
public void setIsDivVisible(String isDivVisible) {
this.isDivVisible = isDivVisible;
}
public int getNumApplicationType() {
return numApplicationType;
}
public void setNumApplicationType(int numApplicationType) {
this.numApplicationType = numApplicationType;
}
}

最佳答案

为了能够在类中使用@Autowired,该类必须由 Spring 管理。的您的 ProposalWiseSelectionForm 类显然不是由 Spring 管理的,因此 messageSource 始终为 null。

在其他类中使用 @Autowired MessageSource messageSource 是有效的,因为正如您提到的,这些类是由 Spring 管理的(正如您所提到的,它们要么是 Controller ,服务等)。

我猜测 ProposalWiseSelectionForm 是一个用于从表单捕获值的 DTO。此类类不会是 Spring bean,因此您无法将内容 Autowiring 到其中。

我建议您将所需的逻辑从 DTO 移出并移入 Controller (或某些 Spring 管理的实用程序),或者在极端情况下,您绝对需要 DTO 中的 @Autowired ,请采取看看@Configurable herehere

关于java - 无法使 messageSource 在 Pojo 类中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25181958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com