Search code examples
jsf-2managed-bean

Reference a managedBean inside Controller bean


i want to pass reference of my Managedbean inside Controller bean as an argument. my Domain Entity is Brand. and i want to set properties of brand from JSF page component. and i want to pass that managedBean reference in controller method and this controller addBrand method getBrandService and save the respective brand Bean. please guide me. thanks :) this is my managed bean code:

@ManagedBean
@RequestScoped
public class BrandBean implements Serializable{
    private static final long serialVersionUID = 1L;
    private String brandName;
    private String brandDecription;
//getters and setters
}

and this is my Controller bean for Brand: // addBrand Method takes brand instance as a parameter. brand is Model Object.

@ManagedBean
@RequestScoped
public class BrandController extends AbstractController{
    private IBrandService brandService;

    public IBrandService getBrandService() {
        brandService = new BrandService();
        return brandService;
    }

    public void setBrandService(IBrandService brandService) {
        this.brandService = brandService;
    }

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return null;
    }
    public void addBrand(String brandName, String brandDecription){
        try{
            Brand brand = new Brand();
            brand.setBrandName(brandName);
            brand.setBrandDecription(brandDecription);
            getBrandService().addBrand(brand);
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }

}

Solution

  • @ManagedBean
    @RequestScoped
    @SuppressWarnings("serial")
    public class BrandBean implements Serializable {
        private int brandId;
        private String brandName;
        private String brandDescription;
        private List<Brand> brands;
        private List<Brand> filter;
    
    
        public List<Brand> getFilter() {
            return filter;
        }
        public void setFilter(List<Brand> filter) {
            this.filter = filter;
        }
        public List<Brand> getBrands() {
            return brands;
        }
        public void setBrands(List<Brand> brands) {
            this.brands = brands;
        }
        public int getBrandId() {
            return brandId;
        }
        public void setBrandId(int brandId) {
            this.brandId = brandId;
        }
        public String getBrandName() {
            return brandName;
        }
        public void setBrandName(String brandName) {
            this.brandName = brandName;
        }
        public String getBrandDescription() {
            return brandDescription;
        }
        public void setBrandDescription(String brandDescription) {
            this.brandDescription = brandDescription;
        }
    
    }
    
    @ManagedBean
    @RequestScoped
    public class BrandController {
        private BrandBean bean;
        @ManagedProperty(value = "#{BrandService}")
        private BrandService brandService;
    public BrandController() {
            bean = new BrandBean();
    
    
        }
        }