Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring mvc 3.2和extjs 4.1.3:我必须为所有请求映射路径定义mvc:resources映射吗?_Spring Mvc_Extjs4 - Fatal编程技术网

Spring mvc Spring mvc 3.2和extjs 4.1.3:我必须为所有请求映射路径定义mvc:resources映射吗?

Spring mvc Spring mvc 3.2和extjs 4.1.3:我必须为所有请求映射路径定义mvc:resources映射吗?,spring-mvc,extjs4,Spring Mvc,Extjs4,我在使用spring mvc 3和extjs 4时遇到问题,或者更确切地说,在exjs尝试加载我的控制器或图像时出现路径问题 我的webapp的结构如下所示: src -- webapp -- app -- extjs4.1.3 -- css -- icons -- WEB-INF -- jsp app.js <mvc:resources mapping="/css/**" location="/css/" /> <mvc:re

我在使用spring mvc 3和extjs 4时遇到问题,或者更确切地说,在exjs尝试加载我的控制器或图像时出现路径问题

我的webapp的结构如下所示:

src
-- webapp
   -- app
   -- extjs4.1.3
   -- css
   -- icons
   -- WEB-INF
      -- jsp
   app.js
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/app/**" location="/app/" />
<mvc:resources mapping="/extjs-4.1.3/**" location="/extjs-4.1.3/" />
<mvc:resources mapping="/app.js" location="/app.js" />
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>My jsp title</title>
    <link rel="stylesheet" type="text/css" href='<c:url value="/extjs-4.1.3/resources/css/ext-all.css" />'>

    <link rel="stylesheet" type="text/css" href='<c:url value="/css/myStyle.css" />'>
    <script type="text/javascript" src='<c:url value="/extjs-4.1.3/ext-all-debug.js" />'></script>
    <script type="text/javascript" src="<c:url value="/app.js" />"></script>
   </head>
   <body></body>
   </html>
我有一个像这样的控制器

@RequestMapping(value = "/path/init.do", method = RequestMethod.GET)
它返回与我的WEB-INF/jsp文件夹中的jsp匹配的视图名称。此jsp加载extjs文件

视图解析程序:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
如果我写myresource.xxx时没有斜杠,它就是

localhost:8080/mywebapp/path/myresource.xxx
但是它是这样工作的,任何建议都可以跳过jstl依赖项,但它是有效的

我真正的问题是,我的app.js将加载extjs的控制器,为此它使用某种“window.location”来构造url。就我而言,它将是

localhost:8080/mywebapp/path/app/controller/myController.js
但我希望是这样

localhost:8080/mywebapp/app/controller/myController.js
我面临着同样的问题,如果我在extjs文件中放置一个图标,url将被删除

localhost:8080/myresource.xxx
localhost:8080/mywebapp/path/icons/myIcon.png
而不是

localhost:8080/mywebapp/icons/myIcon.png as expected.
我可以通过添加

<mvc:resources mapping="/path/app/**" location="/app" />
<mvc:resources mapping="/path/icons/**" location="/icons" />

但是我可以相信,每次我在Spring mvc控制器中定义一个新的requestMapping,例如“path2”,我都必须定义一个相应的mvc:resources映射。

我试图在jsp文件中定义一个全局“baseUrl”javascript变量,在app.js文件中用这个变量作为appFolder的前缀,并用这个变量作为extjs代码中使用的所有图标和内容的前缀,但这两者都是不可接受的

我错过了什么?我在谷歌上搜索了很多,找到了这个“/”url模式和mvc:resources方法(对于spring mvc webapp来说似乎非常干净),但我无法解决我的“uri”问题(我不知道requestMapping生成的路径在真正的英语中是如何调用的)


如果您能帮助我,非常感谢。如果您不能帮助我,非常感谢您抽出时间

您可以尝试将所有资源(我不确定您的哪些内容是静态资源)放入:

然后定义一个映射:

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

此时,您将访问css文件夹,例如使用:

 <c:url value="/resources/css/myStyle.css" />

和您的任何其他路径,或者您可以使用(但未经测试)进行尝试:


我想您将访问您的css文件夹:

 <c:url value="/css/myStyle.css" />


你好,matteo,谢谢您的回答。正如我在帖子中所说,如果我将所有资源放在一个资源文件夹中,我认为这不会改变extjs将继续使用localhost:8080/mywebapp/path/resources/css/myStyle.css的事实。仍然会有错误的“路径”,但我会尝试你的解决方案嗨,塞缪尔·盖夫,我也面临同样的问题。你是如何解决这个问题的
 <mvc:resources mapping="/resources/**" location="/resources/" />
 <c:url value="/resources/css/myStyle.css" />
 <mvc:resources mapping="/**" location="/resources/" />
 <c:url value="/css/myStyle.css" />