#jsp #jstl #websphere
#jsp #jstl #websphere
Вопрос:
У меня есть сервлет, предоставляющий JSP, и я пытаюсь вывести пользовательские теги из строки из моего сессионного компонента. Пользовательские теги распечатываются без оценки. Если я добавлю свои пользовательские теги в JSP, это сработает как шарм, но я не могу динамически добавлять их из сессионного компонента. Я пробовал вывод прямо из сессионного компонента:
<%= sessionBean.getTags() %>
и
<% out.print(sessionBean.getTags()); %>
Я попытался создать пользовательский тег, который принимает строку в качестве своего атрибута:
public class JSTLOut extends TagSupport {
String value;
public void setValue(String value) {
this.value = value;
}
public int doStartTag() {
try {
JSPWriter out = pageContext.getOut();
if (value != null) {
out.print.(value);
}
catch(IOException ioe) {
// TODO: handle
}
return(SKIP_BODY);
}
}
Я пытался использовать Eval taglib
Этот taglib вызвал ошибку LinkageError, что, очевидно, не очень хорошо работает с websphere. Может ли кто-нибудь указать мне правильное направление?
Комментарии:
1. Каковы функциональные требования? В чем проблема, решение которой, по вашему мнению, заключается в этом?
2. Мне нужно динамически добавлять пользовательские теги из моей логики сервлета в мой JSP. Пользовательские теги генерируются из внутренних данных, однако, допустим, у меня есть тег, который вычисляется как <h1> hello</h1>, я получу: <html><body><mytag: hello /></body></html>
3. Почему бы вам не использовать шаблон JSP для этого? Или эти объявления тегов хранятся в HTML? Почему?
4. Мои объявления тегов находятся в .tld, я не думаю, что шаблон будет работать, потому что мне нужно, чтобы JSP был полностью универсальным, поскольку он может иметь множество конфигураций. Я потеряю удобство обслуживания, если у меня будет 40 разных шаблонов.
Ответ №1:
Я не уверен, будет ли это слишком утомительно или нет, но рассматривали ли вы возможность сохранения имен пользовательских тегов в таблице базы данных поиска? Затем вы могли бы запросить в таблице конкретное пользовательское имя тега и вставить любое пользовательское имя тега в динамический JSP, которое необходимо вернуть из сервлета.