Где в весеннем веб-потоке определена переменная javascript 'Spring'? - PullRequest
0 голосов
/ 01 марта 2011

Я использую Spring Webflow, моя страница получила следующую ошибку:

Spring is not defined
Spring.addDecoration(new Spring....entId:'proceed', event:'onclick'})); 

Мне интересно, где переменная JavaScript Spring определена в рамках Spring. Я использую Maven, какую зависимость мне нужно добавить?

Ответы [ 3 ]

1 голос
/ 08 февраля 2012

У меня была эта проблема в Spring Roo, и оказалось, что проблема была связана со ссылками на скрипты dojo и spring в файле load-scripts.tagx. Синтаксис должен быть следующим:

  <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 is undefined».

На данный момент, я не уверен, почему tagx так требователен к этому.

1 голос
/ 01 марта 2011

Базовая зависимость 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, как указано здесь :

<mvc:annotation-driven/>
<mvc:resources mapping  = "/resources/**"
               location = "/, classpath:/META-INF/web-resources/" />

Обратите внимание, что полный URL-адрес ресурса зависит от того, как отображается DispatcherServlet.В примере mvc-booking мы выбрали его сопоставление с отображением сервлета по умолчанию '/':

<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>

Это означает полный URL для загрузки Spring.js/myapp/resources/spring/Spring.js.Если вместо этого DispatcherServlet был сопоставлен с /main/*, то полный URL-адрес будет /myapp/main/resources/spring/Spring.js.

0 голосов
/ 03 марта 2011

Эта проблема решена.Прежде всего, необходимо добавить конфигурацию, как сказал Шон. Затем импортируйте следующие 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>

Я не использовал плитки в своем веб-потоке, пример веб-потока с использованием плиток и импортировал эти три js-файла в стандартный.jsp, поэтому я должен явно импортировать js-файлы в каждый jsp-файл.

...