Good evening, such a question. How to correctly transfer an object from a controller to an html view.

my webapp

@Bean public ViewResolver getViewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/frontend/"); resolver.setSuffix(".html"); return resolver; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/frontend/**").addResourceLocations("/frontend/"); } 

controller

  @RequestMapping("/") public ModelAndView listContact(ModelAndView model){ List<User> users = userDAO.getAll(); model.addObject("users", users); model.setViewName("home"); return model; } 

So I refer to the object in the body view:

$ {users}

Instead of users being displayed, the inscription $ {users} is simply displayed. Please tell me how to fix it. Thank.

    1 answer 1

    You did not specify a JSP, JSF, velocity template, etc. Therefore, the preprocessing before returning the page does not occur. Configure thymeleaf

    It is possible and not to connect the template engine, then enable spring el language

      @Bean public TemplateEngine templateEngine() { SpringTemplateEngine engine = new SpringTemplateEngine(); engine.setEnableSpringELCompiler(true); engine.setTemplateResolver(templateResolver()); return engine; } private ITemplateResolver templateResolver() { SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver(); resolver.setApplicationContext(applicationContext); resolver.setPrefix("/WEB-INF/templates/"); resolver.setTemplateMode(TemplateMode.HTML); return resolver; } 
    • Please tell me which imports or dependencies are needed for these classes (otherwise I cannot find it). - Aleksei
    • Immediately I can not tell. The development environment is not looking for from the maven repository?) - shkiper