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