2016-04-05 22 views
-1

benim denetleyicisi "resultados"Yay MVC. Fasulye boş

@Controller 
public class MyController { 

    @Autowired 
    private CursoDelegate cursoDelegado; 

    @Autowired 
    private List<Articulo> resultados; 

    @RequestMapping(value = "consultarArticulos.html") 
    public ModelAndView consultarArticulos() { 

     ModelAndView modelAndView= new ModelAndView("consultarArticulos");    
     modelAndView.addObject("resultados", resultados);  
     return modelAndView;   
    } 

bir Autowired alanı vardır Ve yapılandırma Class fasulye tanımlamak değer verir. "CursoDelegado.consultarArticulos()" yöntemi üç öğeden oluşan bir koleksiyon döndürür, ancak fasulye her zaman boştur. i tüm kodu ancak uygulama çalıştırmak yapıştırmak yoktu ve tüm fasulye ilan ettiler, Orada diğer sınıfıdır ama burada

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.myapp") 
public class MyConfig extends WebMvcConfigurerAdapter { 

    @Bean 
    public List<Articulo> resultados() 
    { 
     try { 
      return cursoDelegado.consultarArticulos(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return null; 
     } 
    } 
} 

Maalesef gerekli değildir.

@Autowired //MyControllerClass 
private @Resource(name="bean1")List<Articulo> resultados; 

@Bean(name="bean1")//MyConfigClass 
public List<Articulo> resultados() 

ve artık ok: Problem değil ben kodunu değiştirmek "resultados"

olduğunu. Arayüz listesi ile ilgili herhangi bir sorun var ama sebebini bilmiyorum. Herkes bana problema :)

+0

Gerçek problemin bulunduğu MyController.consultarArticulos ve CursoDelegate.consultarArticulos yöntemlerini karıştırıyorsunuz. Post CursoDelegate – Reimeus

cevap

0
@Bean 
public List<Articulo> resultados(CursoDelegate cursoDelegado) 
{ 
    try { 
     List<Articulo> resultados = new ArrayList<Articulo>(); 
     resultados = cursoDelegado.consultarArticulos(); 
     return resultados; 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     return null; 
    } 
} 
0

cursoDelegado tanımlanmamıştır/MyConfig enjekte açıklayabilir Eğer öyleyse cursoDelegado.consultarArticulos() daima NullPointerException atacaktır. Bunu yakalarsınız böylece uygulamanızda görünmez. Konsol günlüğü (e.printStackTrace) sunucu günlüğünde görünür olmalıdır.

En

cursoDelegado.consultarArticulos() şirketinden cursoDelegado enjekte edilir kontrol kullanmak.

+0

Tüm kodları kopyalamıyorum üzgünüm. Uygulama koşuyor ama resultados her zaman null – Gwaihir

0
@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.myapp") 
public class MyConfig extends WebMvcConfigurerAdapter { 
    @Bean 
    public CursoDelegate cursoDelegado() { 
     return new CursoDelegateImpl(); 
    } 

    @Bean 
    public List<Articulo> resultados() 
    { 
     try { 
      return cursoDelegado().consultarArticulos(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return null; 
     } 
    } 
}