如何避免在java自定义标记处理程序中生成html?

时间:2011-07-14 12:24:12

标签: java jsp jsp-tags custom-tag

我能找到的每个例子都有标记处理程序java类生成html并用out.print(someHTML);

喷出它

是否有办法包含jsp并将属性添加到请求中?

2 个答案:

答案 0 :(得分:1)

我没有尝试过,但应该可以通过obtaining a RequestDispatcher来自Request对象:

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。

答案 1 :(得分:1)

尝试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" />

我读了标记文件herehere