我正在使用spring webflow,我的页面出现以下错误:
Spring is not defined
Spring.addDecoration(new Spring....entId:'proceed', event:'onclick'}));
我想知道spring框架中定义的javascript变量Spring
在哪里。我正在使用maven,那么我应该添加什么依赖?
答案 0 :(得分:1)
基础Maven依赖关系:
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-webflow</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
这将包括这种传递依赖:
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-js</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
其中包含JavaScript资源:
<强>资源:强>
META-INF/web-resources/spring/Spring.js
如果将Spring MVC配置为指定的here:
,则可以提供服务<mvc:annotation-driven/>
<mvc:resources mapping = "/resources/**"
location = "/, classpath:/META-INF/web-resources/" />
请注意完整的资源网址 取决于你
DispatcherServlet
的方式 被映射。在mvc-booking样本中 我们选择用它来映射它 默认的servlet映射'/':
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这意味着要加载的完整网址
Spring.js
是/myapp/resources/spring/Spring.js
即可。如果 你的DispatcherServlet
代替了 映射到/main/*
然后是完整的URL 将会/myapp/main/resources/spring/Spring.js
。
答案 1 :(得分:1)
我在Spring Roo中遇到了这个问题,结果发现问题与load-scripts.tagx文件中对dojo和spring脚本的引用有关。语法应如下所示:
<script src="${dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
<script src="${spring_url}" type="text/javascript"><!-- /required for FF3 and Opera --></script>
<script src="${spring_dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
如果重新格式化以将注释放在行上方,则spring.js永远不会包含在运行时中,因此您会看到'Spring.addDecoration未定义'的原因。
此时,我不确定为什么tagx如此挑剔。
答案 2 :(得分:0)
此问题已解决。首先,必须像Sean所说的那样添加配置。然后导入以下js。
<script type="text/javascript" src="<c:url value="/resources/dojo/dojo.js" />"></script>
<script type="text/javascript" src="<c:url value="/resources/spring/Spring.js" />"></script>
<script type="text/javascript" src="<c:url value="/resources/spring/Spring-Dojo.js" />"></script>
我没有在我的webflow中使用磁贴,使用磁贴的webflow示例并在standard.jsp中导入三个js文件,这就是为什么我应该在每个jsp文件中显式导入js文件。