javascript文件在Maven webapp原型中的位置在哪里?

时间:2012-12-05 17:49:32

标签: java javascript maven spring-mvc

我有一个具有以下目录结构的java Spring MVC Web应用程序:

src/
    main/
        java/
        resources/
        webapp/

在我的webapp文件夹中,我有许多带有javascript脚本的html文件。我不希望在html中嵌入javascript,我希望它外化。在哪里我应该将javascript文件放在上面的文件结构中,我需要将哪些配置添加到我的pom.xml和/或servlet-context.xml(spring)文件中?

3 个答案:

答案 0 :(得分:2)

好的,所以在阅读了上述答案和其他一些SO帖后,我找到了两个解决方案:

我正在使用Spring MVC,我的DispatcherServlet映射到root /。这意味着对任何事情的任何请求都将通过它,但我没有控制器来提供资源文件。您可以做的是将DispatcherServlet映射到类似/app/*的内容。然后是所有常规网址,如

http:\\localhost:8080\ContextRoot\users

将可以访问

http:\\localhost:8080\ContextRoot\app\users

然后您可以转到

http:\\localhost:8080\ContextRoot\static\js\file.js

您将通过Apache服务器(或您正在使用的任何服务器)为您提供资源文件。

Spring的工作人员可能认为这是一个问题,并且DispatcherServlet的{​​{1}}仍然映射到/。在您的servlet.xml文件中,您必须添加

<mvc:resources location = "/static/" mapping = "/static/**" />

文件夹static位于文件夹webapp下。这个标签告诉Spring MVC有一个特殊的处理程序用于/static/的任何事情。你还需要

<mvc:annotation-driven>

否则你的Controllers处理程序方法将与前一个标记中的处理程序混淆,什么都不会起作用(至少它不适合我)。

我尝试了这两个并且它们都工作但我去了第二个,因为我的视图中的锚点被映射到root,我不想将它们全部修复。让你的链接相对,人!

答案 1 :(得分:1)

常见的方法是将它们放在新创建的静态目录下

webapp/static/js

并使用/webcontext/static/js/somefile.js

引用它

答案 2 :(得分:0)

我认为在您创建了一个普通的Maven项目后,您只需创建一个新文件夹(由STS \ Eclipse),如:

webapp/static/js

因为maven没有处理javascript(你使用Maven添加新的Java依赖项并编译它... Javascript是运行时脚本,在你的视图代码中并且没有编译代码)

你可以创建一个像这样的文件夹,因为静态的东西更像是其他东西,比如应用程序中使用的jpg immage,.properties文件......是你拥有的东西,你在视图中使用但是你没有处理过由Maven。

啊......可能工作得很好你必须在项目的类路径中添加这个新文件夹。 在STS \ Eclipse中:右键单击项目名称---&gt;属性---&gt; Java构建路径---&gt; tab来源---&gt;点击文件夹---&gt;并添加您已创建的新文件夹