如何使用自定义标签库包含 jsp 文件?

How to include a jsp file using a custom taglib?

我正在尝试使用自定义标签库包含一个 jsp 文件。我已将所有 taglib 设置到位,但它显示的是 include 语句而不是 jsp 内容。

public int doStartTag() throws JspException {
    JspWriter out = pageContext.getOut();
    StringBuffer sb = new StringBuffer();

    if (section != null && !section.isEmpty()) {
        sb.append("<%@ include file=\"defaultHeader.jsp\" %>");
    }
    try {
        out.println(sb.toString());
    } catch (IOException e) {
        log.error("Failed to generate the tag", e);
        e.printStackTrace();
    }
    return super.doStartTag();

我是 taglibs 的新手,所以非常感谢您的帮助。谢谢

您可以在 PageContext 中使用文件名设置属性,然后在 JSP

中创建包含指令

像这样

pageContext.setAttribute("includeFileName", "YourFile.jsp path", PageContext.REQUEST_SCOPE); 

你的JSP:

<%@include file="${pageContext.includeFileName}" %>

然后在您的 JSP 中,获取该属性并 voula! 你真的不需要将洞 JSP 文件添加或写入 writer

希望对您有所帮助:)

我想出了使用 pageContext 的方法:

 pageContext.include(ERROR_BLOCK_FILE_NAME);