Problema com Spring MVC configuração para acessar java Script

5 respostas
java
M

Boa noite,

Já revirei a net atras de soluções e infelizmente não tenho pessoas as quais possa tirar dúvidas sobre programação, se alguém puder me ajudar ficarei muito grato.

Sou inciante e estou fazendo um sistema bem simples de uma recepção para treinar o conteúdo dos cursos FJ21 e FJ25, só que me deparei com um problema que não consegui resolver mesmo configurando os “resources” para a pasta static não funciona nem por decreto já tentei colocar a base como webapp ou web-inf onde estão os meus JSP’s, eclipse sempre me retorna esse erro:

21:53:22,778 WARN [org.springframework.web.servlet.PageNotFound] (default task-4) No mapping found for HTTP request with URI [/sisrec/webapp/static/js/script.js;jsessionid=4SDRDX78AmXOg8ONP1IhFX6Y.dell7] in DispatcherServlet with name ‘dispatcher’

Utilizo SpringMVC 4.2.1 + eclipse Luna + java 8 + Hibernate 4.3 + Maven

como estou chamando dentro da JSP:

<% %>(o arquivo está no diretório) webapp/static/js/script.js

segue minha classe de configuração:

Configuration

@EnableWebMvc

@ComponentScan(basePackages = br.ti.sisrec)

public class SisRecSpringConfig extends WebMvcConfigurerAdapter {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
	InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
	viewResolver.setViewClass(JstlView.class);
	viewResolver.setPrefix("/WEB-INF/views/");
	viewResolver.setSuffix(".jsp");
	registry.viewResolver(viewResolver);
}

@Bean(name = "multipartResolver")
public StandardServletMultipartResolver resolver() {
	return new StandardServletMultipartResolver();
}

@Bean
public MessageSource messageSource() {
	ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
	messageSource.setBasename("messages");
	return messageSource;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
	registry.addResourceHandler("/static/**").addResourceLocations(
			"/static/");

}

}

5 Respostas

M

<script src="<c:url value='/static/js/script.js'/>"></script>

N

Tente assim, lembrando que a pasta static deve ficar dentro da pasta raiz do projeto, no mesmo nível das pastas WEB-INF, META-INF, etc. E a configuração não é necessário.

<script src="<c:url value='static/js/script.js'/>"></script>

C

Olá,

Conhece o Spring Boot (http://projects.spring.io/spring-boot/) ?

Um problema do Spring é a sua configuração que é difícil de se fazer, não existem exemplos completos na documentação. O Spring Boot resolve isso.

Veja também: http://www.devmedia.com.br/spring-boot-simplificando-o-spring-revista-java-magazine-135/31979

No GitHub tem um repositório do projeto com vários exemplos de utilização do Spring Boot: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples

E aqui um exemplo de Spring Boot Web MVC com JSP: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp

A documentação do Spring Boot sobre conteúdo estático (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc-static-content) diz o seguinte:
Por padrão Spring Boot irá servir conteúdo estático de um diretório chamado /static (ou /public ou /resources ou /META-INF/resources) dentro do classpath ou da raiz do ServletContext. Ele usa ResourceHttpRequestHandler do Spring MVC assim você pode modificar o comportamento adicionando seu próprio WebMvcConfigurerAdapter e sobrepondo o método addResourceHandlers.

Você também pode usar o Spring Initializr para criar um projeto Spring Boot já configurado: https://start.spring.io/

Então a dica é: não tente reinventar a roda. Comece com um projeto completo e então o modifique para suas necessidades e assim vá aprendendo aos poucos, até ter conhecimento suficiente para fazer modificações fora do padrão.

Última dica: a Revista Java Magazine da DevMedia é uma ótima fonte de referência para os iniciantes.

C

Olá,

É um pouco off-topic mas relevante:

O próprio projeto Spring Boot não recomenda a utilização de JSP.

O seguinte artigo recomenda a utilização de FreeMarker: http://www.javaworld.com/article/2449436/java-web-development/in-praise-of-java-template-engines.html

E esse aqui: 10 Reasons to Replace Your JSPs With FreeMarker Templates

Então, fica a dica.

M

Obrigado vou ver aqui

Criado 13 de agosto de 2016
Ultima resposta 14 de ago. de 2016
Respostas 5
Participantes 3