我对JSP中的自定义标记创建非常陌生。当我阅读一些教程时,我看到他们使用EVAL_BODY_AGAIN, SKIP_BODY and EVAL_BODY_INCLUDE标记。有人能告诉我这到底是什么意思吗?
发布于 2018-07-05 08:09:11
SKIP_BODY:它是一个可选的返回值,但当您想跳过主体计算时,必须由doStartTag()返回该值--即当TagLibraryDescriptor文件包含空元素时必须返回该值,“TagLibraryDescriptor”值显示始终存在空操作。
EVAL_BODY_INCLUDE : --它是一个可选的返回值,但是当您想要计算主体时,必须由doStartTag()返回这个值。
例子:
考虑一个类DoStartTagExample.java
package pack;
import javax.servlet.jsp.tagext.TagSupport;
public class DoStartTagExample extends TagSupport
{
public int doStartTag()
{
//return EVAL_BODY_INCLUDE;
return SKIP_BODY;
}
}这是一个名为doStartTagExample.tld的tld示例
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<tag>
<name>doStart</name>
<tag-class>pack.DoStartTagExample</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>现在编写jsp doStartTagExample.jsp
<%@taglib uri="/WEB-INF/doStartTagExample.tld" prefix="dev" %>
<html>
<head>
<title>doStartTag() Example</title>
</head>
<body>
Jsp page content before starting tag.
<dev:doStart>
<br><b>contents displayed after the custom tag's
start tag is encountered.</b>
</dev:doStart>
<br>Jsp page content after closing tag.
</body>
</html>产出如下

https://stackoverflow.com/questions/42508175
复制相似问题