Вопрос

Я пытаюсь создать компонент struts2 с помощью freemarker.Я создал ftl файл с таким кодом, как этот:

<script type="text/javascript" src="${parameters.library?default('')}"></script>

Который ожидает параметр с именем library для передачи компоненту.Если параметр отсутствует, то по умолчанию он равен пустому значению String.

На моей странице JSP я имею в виду такой компонент, как этот:

<s:component template="mytemplate.ftl">
    <s:param name="library" value="/scripts/mylibrary.js"/>
</s:component>

К сожалению, значение для параметра library не задается.Это всегда пустота String.

Я пользуюсь советом из этого Учебник и кажется, как будто s:param тег должен передать параметр в шаблон и сделать его доступным.Чего я здесь не понимаю?

Есть ли у кого-нибудь некоторый опыт создания этих компонентов, который мог бы пролить некоторый свет?

Спасибо.

Это было полезно?

Решение

отправьте параметр в одинарных кавычках

<s:component template="mytemplate.ftl">
    <s:param name="library" value="'/scripts/mylibrary.js'"/>
</s:component>

Другие советы

В конце концов я наткнулся в документах на некоторый синтаксис, который работает.Я должен ссылаться на параметр следующим образом:

<script type="text/javascript" src="${parameters.get('library')?default('')}">
</script>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top