在jsp中引用资源的问题

时间:2017-12-08 19:44:26

标签: java spring maven jsp

我无法实现我的示例应用程序的功能参考方案,如下所示。 jsp文件中的资源声明似乎无法访问文件teste.js。任何帮助都是有价值的。

JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title> Composição </title>

            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

            <script type="text/javascript" charset="UTF-8" src="http://localhost:8080/compo/resources/js/teste.js"></script>

    </head>
<body>
    Greeting : ${greeting}

    <table><tr><td id="save"> clique </td></tr></table>


    <script type="text/javascript">

        window.onload = function() {
            document.getElementById("save").onclick = function fun() {
                //alert("hello"); - working
                testing("hello 2"); //not working
            }
        }

</script>

</body>
</html>

teste.js

function testing(message){
    alert('messaged script: ' + message);
}

我正在使用Spring MVC并且我使用它的向导在Eclipse中构建应用程序,因此它使用了“WebContent”文件夹结构,尽管事实上我将我的项目变成了Maven项目创建后。我认为这是一个重要的信息。

更新

经过多次测试后,我得出结论,问题出在Web-MVC配置中,因为没有Spring的类似项目可以完美地访问资源。

配置(Spring 5.0.2):

package com.mycompany.compo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.mycompany.compo")
public class SpringConfiguration implements WebMvcConfigurer {

    @Bean

    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/resources/**")
          .addResourceLocations("public", "classpath:/resources/")
          .setCachePeriod(31556926)
          ;
    }


}

0 个答案:

没有答案