Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

usa imagem na minha JSP com Spring MVC

Boa noite! estou usando o Spring MVC praticamente sem nenhum xml no Curso Spring MVC I, como faço para coloca um imagem na minha JSP? pesquisei sobre o assunto e me orientarão a cria um xml chamado spring-servlet.xml, mais vou ter que altera o meu projeto todo? sou iniciante em Spring MVC estou meio perdido. localização do arquivo >> /casadocodigo/WebContent/WEB-INF/imagens/excluir.png

@EnableWebMvc
@ComponentScan(basePackageClasses={HomeController.class, ProdutoDAO.class, FileSaver.class, CarrinhoCompras.class})
public class AppWebConfiguration {


    @Bean 
    public InternalResourceViewResolver internalResourceViewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposedContextBeanNames("carrinhoCompras");
        return resolver;

    }


    @Bean
     public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
       messageSource.setBasename("/WEB-INF/messages");
       messageSource.setDefaultEncoding("UTF-8");
       messageSource.setCacheSeconds(1);

       return messageSource;

     }
    @Bean
    public FormattingConversionService mvcConversionService(){
    DefaultFormattingConversionService conversionService = new    DefaultFormattingConversionService(); 
    DateFormatterRegistrar registrar = new DateFormatterRegistrar();

    registrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
    registrar.registerFormatters(conversionService);

    return conversionService;
    }

    @Bean
    public MultipartResolver multipartResolver(){
        return new StandardServletMultipartResolver();
    }

}
public class ServletSpringMVC extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {

        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {

        return new Class[] {AppWebConfiguration.class, JPAConfiguration.class};
    }

    @Override
    protected String[] getServletMappings() {

        return new String[] {"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
    CharacterEncodingFilter encodingFilter = new    CharacterEncodingFilter();
    encodingFilter.setEncoding("UTF-8");
        return new Filter[] {encodingFilter};
    }

    @Override
    protected void customizeRegistration(Dynamic registration) {
               registration.setMultipartConfig(new MultipartConfigElement("")); 

    }

}

minha JSP itens.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 <img src="<c:url value='casadocodigo/imagens/excluir.png'/>"/>

meu Controller

@Controller
@RequestMapping("/carrinho")
@Scope(value=WebApplicationContext.SCOPE_REQUEST)
public class CarrinhoComprasController {

    @Autowired
    private ProdutoDAO produtoDAO;

    @Autowired
    private CarrinhoCompras carrinho;
    @RequestMapping("/add")
     public ModelAndView add(Integer produtoId, TipoPreco tipoPreco){
                          ModelAndView modelAndView = new ModelAndView("redirect:/carrinho");
                          CarrinhoItem carrinhoItem = criaItem(produtoId, tipoPreco);
                                   carrinho.add(carrinhoItem);

                          return modelAndView;
     }

    private CarrinhoItem criaItem(Integer produtoId, TipoPreco tipoPreco) {
        Produto produto = produtoDAO.find(produtoId);
        CarrinhoItem carrinhoItem = new CarrinhoItem(produto, tipoPreco);
        return carrinhoItem;
    }
    @RequestMapping(method=RequestMethod.GET)
    public ModelAndView itens() {
        return new ModelAndView("carrinho/itens");
    }
}

Se tive um modo sem ser por xml agradeço muito!

2 respostas
solução!

Oi Ronny,

Depois você vai ver direitinho no curso a classe WebMvcConfigurerAdapter, mas, pra fazer algumas configurações a mais sem usar xml, a sua classe AppWebConfiguration precisa estender da classe WebMvcConfigurerAdapter. Aí será possível, na sua classe AppWebConfiguration, sobrescrever o método da classe mãe que cuida dessa questão de procurar arquivos estáticos:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/imagens/**")
            .addResourceLocations("/imagens/");
}

Testa aí e avisa se funcionar! :)

Deu certo! muito obrigado pela rapidez e atenção!! eu não sabia que ia ter no modulo II sou um pouco apressado com as coisas acho que deu para perceber rsrsrsrs