Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免在java自定义标记处理程序中生成html?_Java_Jsp_Jsp Tags_Custom Tag - Fatal编程技术网

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

如何避免在java自定义标记处理程序中生成html?,java,jsp,jsp-tags,custom-tag,Java,Jsp,Jsp Tags,Custom Tag,我能找到的每个示例都有标记处理程序java类生成html,并使用out.print(someHTML)将其输出 有没有办法包含jsp并向请求添加属性?我还没有尝试过,但应该可以通过请求对象: public int doStartTag() throws JspException { try { pageContext.setAttribute("title", "My Title"); pageContext.getRequest().getRequest

我能找到的每个示例都有标记处理程序java类生成html,并使用
out.print(someHTML)将其输出


有没有办法包含jsp并向请求添加属性?

我还没有尝试过,但应该可以通过请求对象:

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也有一个方法,但似乎只适用于静态文件,而不适用于JSP;下面是一个使用属性的简单示例

标记文件必须位于WEB-INF/tags下,因此在WEB-INF/tags/makebold.Tag中:

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

<b>${toBold}</b>

${toBold}
在boldtest.jsp中:

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

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


我阅读了标记文件和。

仅对此进行更新-在pageContext上设置属性不起作用-您需要在请求范围内执行此操作&在使用请求调度程序之前必须执行.flush(),否则输出不会包含在正确的位置。介意我更新你的答案吗?@BedwyrHumphreys:说吧,这就是堆栈溢出的精神。