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

Spring MVC I Aula 10 atvidade

Eu baixei os projetos referentes a pagina da casa do codigo e deixei na estrutura que o professor pede, mas por algum motivo mesmo copiando e colando todo html do arquivo detalhe-pronto.jsp, quando sobre o servidor ele não está aplicando o css na pagina, sendo que todos os arquivos eu deixei no caminho especificado src/main/webapp/ e também não está carregando os preços nem títulos dos livros na paginas, fica somente a pagina em html pura, a unica coisa que aplica é a imagem do livro mas o resto ele não aplica nada e não carrega nenhum dado na pagina, eu ja atualizei o projeto e mesmo assim continua dando esses problemas eu verifiquei todos as expressions language no html também, estão todas certas, rodei em debug pra saber se os métodos no controller e no Dao se estão carregando, mas na pagina não traz absolutamente nada, alguém poderia me ajudar?

4 respostas

vou colocar os códigos relacionados:

`package br.com.casadocodigo.loja.conf;

import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.format.datetime.DateFormatter; import org.springframework.format.datetime.DateFormatterRegistrar; import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.format.support.FormattingConversionService; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver;

import br.com.casadocodigo.loja.components.FileSaver; import br.com.casadocodigo.loja.controllers.HomeController; import br.com.casadocodigo.loja.dao.ProdutoDAO;

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

@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix( ".jsp");
    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 formatterRegistrar = new DateFormatterRegistrar();
    formatterRegistrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
    formatterRegistrar.registerFormatters(conversionService);
    return conversionService;
}

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

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

}

insira seu código aqui


package br.com.casadocodigo.loja.dao;

import java.util.List;

import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional;

import br.com.casadocodigo.loja.models.Produto;

@Repository @Transactional public class ProdutoDAO {

@PersistenceContext
private EntityManager manager;

public void gravar(Produto produto) {
    manager.persist(produto);
}

public List<Produto> listar(){
    return manager.createQuery("select p from Produto p", Produto.class).getResultList();
}

public Produto find(int id) {
    manager.createQuery("select distinct(p) from Produto p "
            + "join fetch p.precos precos where p.id = :id").setParameter("id", id).getSingleResult();
    return null;
}

}

`

insira seu código aquipackage br.com.casadocodigo.loja.controllers;

import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView;

import br.com.casadocodigo.loja.components.FileSaver; import br.com.casadocodigo.loja.dao.ProdutoDAO; import br.com.casadocodigo.loja.models.Produto; import br.com.casadocodigo.loja.models.TipoPreco; import br.com.casadocodigo.loja.validation.ValidaFormulario;

@Controller @RequestMapping("/produtos") public class ProdutosController {

@Autowired
private FileSaver fileSaver;

@Autowired
private ProdutoDAO produtoDao;

@RequestMapping("form")
public ModelAndView form(Produto produto) {
    ModelAndView modelAndView = new ModelAndView("produtos/form");
    modelAndView.addObject("tipos", TipoPreco.values());
    return modelAndView;
}

@RequestMapping(method=RequestMethod.POST)
public ModelAndView gravar(MultipartFile sumario, @Valid Produto produto, BindingResult result){
    if(result.hasErrors()){
        return form(produto);
    }
    String path = fileSaver.write("arquivos-sumario", sumario);
    produto.setSumarioPath(path);
    produtoDao.gravar(produto);
    //redirectAttributes.addFlashAttribute("message","Produto cadastrado com sucesso");
    return new ModelAndView("redirect:produtos");
}

@RequestMapping(method = RequestMethod.GET)
public ModelAndView listar() {
    List<Produto> produtos = produtoDao.listar();
    ModelAndView modelAndView1 = new ModelAndView("produtos/lista");
    modelAndView1.addObject("produtos", produtos);
    return modelAndView1;
}

@RequestMapping("/detalhe-limpo/{id}")
public ModelAndView detalhe(@PathVariable("id") int id){
    ModelAndView modelAndView = new ModelAndView("produtos/detalhe-limpo");
    Produto produto = produtoDao.find(id);
    modelAndView.addObject("produto", produto);
    return modelAndView;
}

@InitBinder
public void initBinder(WebDataBinder binder){
    binder.addValidators(new ValidaFormulario());
}

}

o html eu utilizei o arquivo do intrutor pronto

solução!

eu consegui resolver não sei se foi o refresh no projeto mas agora carregou tudo certo