gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:45:39 25 4
gpt4 key购买 nike

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

<%@ taglib uri="/tld/CdrReconTags.tld" prefix="reconTags" %>

<reconTags:renderHTML>
<form id=F_3_2>

<table align='center' width='100%' style='border:1px solid black;' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td align='center'>
<div class='label'>
<strong style='white-space: nowrap;'>STARTDATE :&nbsp;</strong>
</div>
</td>
<td>
<div class='label'>
<strong style='white-space: nowrap;'>
<reconTags:reportDatesDropDown id="STARTDATE_3_3" />&nbsp;
<span style='color:red;font-weight: bold; font-size: 20px;'>*</span>
</strong>
</div>
</td>
<td align='center'>
<div class='label'>
<strong style='white-space: nowrap;'>ENDDATE :&nbsp;</strong>
</div>
</td>
<td>
<div class='label'>
<strong style='white-space: nowrap;'>
</reconTags:renderHTML>

注意未解析的自定义 JSP 标记 <reconTags:reportDatesDropDown id="STARTDATE_3_3" /> .怎么让JSP求值呢?以下代码是 <reconTags:renderHTML> 的标记处理程序并且不评估正文,如上面的输出所示。

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;
}
}

最佳答案

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

请注意,JSP 所做的是:

1 - 解析文档中的标签。

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

由于此调用仅在标签被解释后完成,因此这些标签以纯文本形式出现是正常的。

如果你想在你的文档中添加某种动态标签,你必须想出一种方法来在解析文档之前用这些标签构建文档......然而,这可能会让人非常头疼,如果不是不可能的话。

关于java - 如何评估存储在字符串中的 JSP 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com