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 如何评估存储在字符串中的JSP标记?_Java_Jsp_Taglib - Fatal编程技术网

Java 如何评估存储在字符串中的JSP标记?

Java 如何评估存储在字符串中的JSP标记?,java,jsp,taglib,Java,Jsp,Taglib,我有一个Struts操作类,它设置一个字符串,并将自定义JSP标记标记为请求属性。action类将其转发到一个JSP页面,该页面包含另一个标记,其中打印了请求属性。但是,自定义JSP标记不会被解析,而是显示为纯文本。下面显示了JSP是如何呈现它的: 开始日期: * 结束日期: 请注意未解析的自定义JSP标记。如何让JSP对其进行评估?下面的代码是的标记处理程序,不计算主体,如上面的输出所示 public class DynamicHTMLRendererTagHandler exten

我有一个Struts操作类,它设置一个
字符串
,并将自定义JSP标记标记为请求属性。action类将其转发到一个JSP页面,该页面包含另一个标记,其中打印了请求属性。但是,自定义JSP标记不会被解析,而是显示为纯文本。下面显示了JSP是如何呈现它的:


开始日期:

*

结束日期:

请注意未解析的自定义JSP标记
。如何让JSP对其进行评估?下面的代码是
的标记处理程序,不计算主体,如上面的输出所示

public class DynamicHTMLRendererTagHandler extends BodyTagSupport 
{

    private static final long serialVersionUID = 6457283471933854138L;

    public int doStartTag() throws JspException 
    {
        return EVAL_BODY_BUFFERED;
    }

    public int doAfterBody() throws JspException 
    {
       /* Grab the body content */
        BodyContent body = this.getBodyContent();

        try 
        {
            body.writeOut(body.getEnclosingWriter());
        } catch (IOException e) 
        {
              throw new JspTagException(e.toString());      
        }
        return SKIP_BODY;
    }
}

重新标记应该与初始代码本身一起使用,而不是作为字符串输出添加

请注意,JSP所做的是:

1-解析文档中的标记

2-填充文档请求的Java输出

由于此调用仅在解释标记后执行,因此这些标记以纯文本形式显示是正常的


如果你想在你的文档中添加一些动态标记,你必须在解析之前找到一种方法,用这些标记构建文档。。。然而,如果不是不可能的话,这可能是一个非常令人头痛的问题。

Gonçalo,Balusc:谢谢你的建议