Boa noite pessoal, estou desenvolvendo uma ferramenta, e surgiu um problema, o JSF não conseguiu acessar um atributo de uma super classe.
Na minha página estou referenciando um atributo assim: #{pessoaController.insertObj.nome} por exemplo, e o problema é que o ‘insertObj’ está na SuperClasse que é uma classe genérica, as duas estão a seguir:
@ManagedBean(name="pessoaController")
@ViewScoped
public class PessoaController extends GenericController<Pessoa>{
}
E a superClasse em questão é a GenericController que está a seguir:
public class GenericController<T extends Serializable> implements IGenericController<T> {
protected Class typeClass;
protected GenericLazyDataModel<T> listGrid;
protected T deleteObj;
protected T updateObj;
protected T insertObj;
protected Long idToGet;
public GenericController(Class typeClass){
listGrid = getLazyDataModel();
this.typeClass = typeClass;
try {
deleteObj = (T) typeClass.newInstance();
updateObj = (T) typeClass.newInstance();
insertObj = (T) typeClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
public GenericController(){}
public T save() {
return getService().save(insertObj);
}
public void delete() {
getService().delete(deleteObj);
}
public void update() {
getService().update(updateObj);
}
public T get() {
return getService().get(idToGet);
}
public ServletRequest getRequest() {
return (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
}
public ServletResponse getResponse() {
return (ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
}
protected GenericService<T> getService(){
try {
return GenericUtils.springContext.getBean(ClassUtils.getServiceOfModel(typeClass));
} catch (BeansException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
protected GenericLazyDataModel<T> getLazyDataModel(){
try {
return GenericUtils.springContext.getBean(ClassUtils.getLazyDataModelOfModel(typeClass));
} catch (BeansException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
public void refresh() {
}
public GenericLazyDataModel getListGrid() {
return listGrid;
}
public void setListGrid(GenericLazyDataModel lazyDataModel) {
this.listGrid = lazyDataModel;
}
}