Выполнение отличных операторов в источниках JavaScript в Grails

classloader.getResource(..) возвращает URL

, поэтому просто примените getText("UTF-8") к URL:

String content = classloader.getResource("datasource/${name}.txt")?.getText("UTF-8")

или:

String content = classloader.getResourceAsStream("datasource/${name}.txt")?.getText("UTF-8")
7
задан Chris King 8 January 2009 в 19:56
поделиться

4 ответа

Легкое решение сохранить Ваш JavaScript незаметным состоит в том, чтобы создать JavaScriptController и отобразить его действия "/js /*" путем добавления этого к Вашему UrlMappings.groovy файл:

"/js/$action"{
  controller = "javascript"
}

затем просто создайте действие для каждого динамического файла JS, который Вы хотите, включаете в в Вашем расположении <ГОЛОВА>, и престо, у Вас есть файл JS, в который можно вставить отрывки Grails!:)

Примечание: Я нашел, что в настоящее время существует ошибка в Grails, который не отображает расширения файла на типы контента правильно, таким образом, необходимо будет включать <%@ page contentType="text/javascript; UTF-8" %> наверху Ваших файлов представления.

13
ответ дан 6 December 2019 в 07:52
поделиться

Или это... имеет метод тега/сервиса/динамичного, который позволяет тегам еще выписать свой JS+CSS+whatever к "кэшу", который используется для создания ресурсов JS+CSS другим контроллером.

Полное понятие здесь: [http://www.anyware.co.uk/2005/2009/01/19/an-idea-to-give-grails-tags-esp/] [1]

1
ответ дан 6 December 2019 в 07:52
поделиться

Существует иначе - передают в сгенерированном коде в функцию, которая ожидает закрытия. Те закрытия сгенерированы программой, конечно. Сгенерированный код, конечно, inlined/script-tagged на gsp странице.

это может или не может работать в зависимости от природы сгенерированного кода. Но я подозреваю, что это будет работать, и если это не сделает, то незначительная тонкая настройка к стилю кодирования Вашего JavaScript определенно заставит его работать. Хотя, если они 'сгенерировали' код, не изменяется очень, это вполне излишество imo.

0
ответ дан 6 December 2019 в 07:52
поделиться

Это отличное решение. Я хотел бы предложить вам использовать что-то другое, кроме отображения

"/js/$action" 
, потому что это больше не позволит вам получить доступ к файлам javascript в / web-app / js /. Все ваши файлы javascript необходимо переместить в каталог, на который будет указывать ваш контроллер.

Я бы использовал что-то вроде

"/dynjs/$action"

Таким образом, вы по-прежнему можете указывать на файлы в / web-app / js / files без конфликтов и пользоваться преимуществами тегов gsp в файлах javascript.

Поправьте меня, если я Я ошибаюсь.

7
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: