1. Базовая грамматика
1. «#» используется для обозначения операторов сценария Velocity, включая #set, #if, #else, #end, #foreach, #end, #iinclude, #parse, #macro и т. д.;
нравиться:
#if($info.imgs)
<img src="http://VeVB.COm/ydmx_lei/blog/$info.imgs" border=0>
#еще
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#конец
2. «$» используется для идентификации объекта (или понимается как переменная, например);
Например: $i, $msg, $TagUtil.options(...) и т. д.
3. «{}» используется для четкой идентификации переменной скорости;
Например, на странице есть $someonename. В настоящее время Velocity будет использовать в качестве имени переменной somename. Если наша программа хочет отображать символ имени сразу после переменной who, указанную выше метку следует изменить на ${someone. . }имя.
4. «!» используется для принудительного отображения несуществующих переменных как пустых.
Например, если страница содержит $msg, то если объект msg имеет значение, значение msg будет отображено. Если объект msg отсутствует, на странице будет отображаться символ $msg. Это то, чего мы не хотим. Чтобы несуществующие переменные или объекты с нулевыми значениями переменных отображались пустыми, вам нужно всего лишь добавить знак «!» перед именем переменной.
Например: $!msg
2. Лучшие практики в EasyJWeb
Теоретически вы можете использовать все скрипты и функции Velocity в шаблоне EasyjWeb, но мы не рекомендуем использовать слишком много сложных выражений скрипта в шаблоне интерфейса. В крайнем случае, не добавляйте в шаблон интерфейса какую-либо сложную логику. не говоря уже о добавлении объявлений переменных, логических операторов и т. д. в шаблон интерфейса.
В EasyJWeb мы предоставляем пять основных операторов сценариев шаблонов, которые в основном могут удовлетворить требования всех шаблонов приложений. Эти четыре оператора шаблона очень просты и могут быть добавлены непосредственно разработчиком интерфейса. Во многих современных практиках приложений EasyJWeb мы видим, что среди всех шаблонов интерфейса можно реализовать только следующие четыре простых оператора сценария шаблона:
1. $!obj напрямую возвращает результат объекта.
Например: отобразите значение объекта java msg в теге html. <p>$!msg</p>
Отображение значения объекта msg, обработанного объектом HtmlUtil, в теге html <p>$!HtmlUtil.doSomething($!msg)</p>
2. #if($!obj) #else #конец утверждения
Например: в различных приложениях EasyJWeb с открытым исходным кодом мы часто видим примеры всплывающих подсказок msg.
#if($сообщение)
<скрипт>
Оповещение('$!msg');
</скрипт>
#конец
Приведенный выше сценарий означает, что при наличии объекта msg будет выведено следующее содержимое, например <script>.
3. #foreach( $info in $list) $info.someList #end Циклы для чтения объектов в списке коллекции и их соответствующей обработки.
Например: скрипт шаблона html-интерфейса для отображения популярных тем на главной странице форума системы форумов с открытым исходным кодом EasyJF (0.3):
#foreach($info в $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#конец
Приведенный выше сценарий указывает, что он проходит по объектам в коллекции hotList1 и выводит соответствующее содержимое объекта.
4. #macro(имямакроса)#end — это вызов функции (макроса) сценария, и его не рекомендуется широко использовать в шаблонах интерфейса.
Например: в примере добавления, удаления, изменения и запроса, быстро созданного с помощью EasyJWeb Tools, вы можете щелкнуть строку заголовка списка, чтобы отобразить порядок по возрастанию и убыванию. Это содержимое шаблона, которое мы часто видим в приложениях EasyJWeb. для отображения статуса сортировки.
Определение функции (макроса), обычно ставится первым
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://VeVB.COm/ico/${orderType}.gif">
#конец
#конец
Конкретный вызов: <font color="#FFFFFF">title#orderPic("title")</font>
5. Включите файл #inclue("имя файла шаблона") или #parse("имя файла шаблона").
В основном используется для обработки страниц с одинаковым содержимым, например, верхним или нижним содержимым каждого веб-сайта.
Чтобы узнать о методах использования, вы можете обратиться к приложениям в блоге с открытым исходным кодом EasyJF и на форуме с открытым исходным кодом EasyJF!
Например: #parse("/blog/top.html") или #include("/blog/top.html")
Разница между синтаксическим анализом и включением заключается в том, что если во включенном файле есть тег сценария Velocity, он будет анализироваться дальше, а включение будет отображаться как есть.
3. Об использовании #set
В крайнем случае, не объявляйте переменные сценария Velocity самостоятельно в представлении страницы, то есть используйте #set как можно реже. Иногда нам необходимо отобразить серийный номер на странице, но объект программы не содержит этого атрибута серийного номера. Вы можете определить его самостоятельно. Например, в циклической системе это выглядит следующим образом:
#set ($i=0)
#foreach($информация в $list)
Серийный номер: $i
#set($i=$i+1)
#конец
4. Обзор синтаксиса скрипта Velocity
1. Оператор: #set ($var=XXX)
Левая часть может содержать следующий контент
Скопируйте код кода следующим образом:
Ссылка на переменную
Строковый литерал
Ссылка на недвижимость
Ссылка на метод
Числовой литерал #set ($i=1)
ArrayList #set ($arr=["yt1","t2"])
арифметические операторы
2. Примечание:
Одна строка ## XXX
Несколько строк #* xxx
хххх
xxxxxxxxxxxx*#
Тип ссылки ссылки
3. Переменные
Начинается с "$", первый символ должен быть буквой. символ, за которым следует идентификатор VTL (a .. z или A .. Z).
Переменные могут содержать следующие символы:
буквенные (а..з, А..Я)
числовой (0 .. 9)
дефис («-»)
подчеркивание ("_")
4.Свойства
$Identifier.Идентификатор
$user.name
Значение имени в хеш-таблице user. Аналогично: user.get("name").
5. Методы
объект user.getName() = $user.getName()
6. Формальная ссылочная нотация.
Используйте {} для отделения имен переменных от строк
нравиться
#set ($user="csy"}
${user}имя
вернуть csyname
$username
$!имя пользователя
Разница между $ и $!
Если имя пользователя не найдено, $username возвращает строку "$username", а $!username возвращает пустую строку ""
7. Двойные кавычки и кавычки
#set ($var="helo")
test"$var" возвращает testhello
test'$var' возвращает test'$var'
Вы можете изменить метод обработки по умолчанию, установив stringliterals.interpolate=false.
8. Условные операторы
Скопируйте код кода следующим образом:
#if($фу)
<strong>Скорость!</strong>
#конец
#if($фу)
#elseif()
#еще
#конец
Выполняется, когда $foo имеет значение null или ложное значение логического объекта.
9. Логические операторы: == && || !
10. Оператор цикла #foreach($var in $arrays) //Коллекция содержит следующие три типа вектора, хеш-таблицу или массив.
#конец
#foreach($product в $allProducts)
<li>$продукт</li>
#конец
#foreach($key в $allProducts.keySet())
<li>Ключ: $key -> Значение: $allProducts.get($key)</li>
#конец
#foreach($customer в $customerList)
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#конец
11. Переменная VelocityCount определена в файле конфигурации.
Скопируйте код кода следующим образом:
# Имя счетчика циклов по умолчанию
# ссылка на переменную.
директива.foreach.counter.name = скоростьCount
# Начальное значение цикла по умолчанию
# ссылка на переменную счетчика.
директива.foreach.counter.initial.value = 1
12. Включить файлы
#include("one.gif","two.txt","three.htm" )
13. Разбор скрипта импорта
#parse("me.vm" )
14. #stop останавливает выполнение и возвращает результат.
15. Определите макрос Velocimacros, который эквивалентен поддержке функций, включая функции.
#макрос(д)
<tr><td></td></tr>
#конец
вызов
#д()
16. Макросы с параметрами
Скопируйте код кода следующим образом:
#macro(строки таблиц $color $somelist )
#foreach($что-то в $somelist)
<tr><td bgcolor=$color>$something</td></tr>
#конец
#конец
17. Оператор диапазона
#foreach($foo в [1..5])