首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EVAL_BODY_AGAIN、SKIP_BODY和EVAL_BODY_INCLUDE的目的是什么?

问EVAL_BODY_AGAIN、SKIP_BODY和EVAL_BODY_INCLUDE的目的是什么?
EN

Stack Overflow用户
提问于 2017-02-28 11:57:12
回答 1查看 2.4K关注 0票数 0

我对JSP中的自定义标记创建非常陌生。当我阅读一些教程时,我看到他们使用EVAL_BODY_AGAIN, SKIP_BODY and EVAL_BODY_INCLUDE标记。有人能告诉我这到底是什么意思吗?

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 08:09:11

SKIP_BODY:它是一个可选的返回值,但当您想跳过主体计算时,必须由doStartTag()返回该值--即当TagLibraryDescriptor文件包含空元素时必须返回该值,“TagLibraryDescriptor”值显示始终存在空操作。

EVAL_BODY_INCLUDE : --它是一个可选的返回值,但是当您想要计算主体时,必须由doStartTag()返回这个值。

例子:

考虑一个类DoStartTagExample.java

代码语言:javascript
复制
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示例

代码语言:javascript
复制
<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

代码语言:javascript
复制
<%@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>

产出如下

​

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42508175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档