Как избежать генерации HTML в обработчике пользовательских тегов Java? - PullRequest
1 голос
/ 14 июля 2011

Каждый пример, который я могу найти, имеет класс java-обработчика тегов, который генерирует html и выдает его с out.print(someHTML);

Есть ли способ вместо этого включить jsp и добавить атрибуты в запрос?

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Попробуйте файл пользовательского тега JSP; Вот простой пример использования атрибута.

Файлы тегов должны находиться под тегами WEB-INF /, поэтому в файле WEB-INF / tags / makebold.tag:

<%@ attribute name="toBold" required="true" %>

<b>${toBold}</b>

В boldtest.jsp:

<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>

<my:makebold toBold="this will be bolded" />

Я читаю файлы тегов здесь и здесь .

1 голос
/ 14 июля 2011

Я не пробовал этого, но это возможно, если получить RequestDispatcher от объекта запроса:

public int doStartTag() throws JspException {
    try {
        pageContext.setAttribute("title", "My Title");
        pageContext.getRequest().getRequestDispatcher("/WEB-INF/includes/header.jspf").include(pageContext.getRequest(), pageContext.getResponse());
    }
    catch (IOException e) {

    }
    return EVAL_BODY_INCLUDE;
}

PageContext также имеет include метод, но, кажется, работает только для статических файлов, а не JSPS.

...