Nic*_*ick 14 java jsp-tags custom-attributes java-ee
因此,根据Sun的J2EE文档(http://docs.sun.com/app/docs/doc/819-3669/bnani?l=en&a=view),"如果不需要标记属性,标记处理程序应该提供默认值."
我的问题是如何根据文档的描述定义默认值.这是代码:
<%@ attribute name="visible" required="false" type="java.lang.Boolean" %>
<c:if test="${visible}">
My Tag Contents Here
</c:if>
Run Code Online (Sandbox Code Playgroud)
显然,这个标签不会编译,因为它缺少tag指令和核心库导入.我的观点是,我希望"visible"属性默认为TRUE."标签属性不是必需的",因此"标签处理程序应提供默认值".我想提供一个默认值,所以我错过了什么?
任何帮助是极大的赞赏.
Nic*_*ick 15
我会回答我自己的问题.我有一个顿悟,意识到这java.lang.Boolean
是一个阶级而不是原始阶段.这意味着该值可以为null,并且在测试之后,该值肯定为null.
当未定义值时,则传入null.否则,该值是传入的内容.因此,在声明属性后,我要做的第一件事是检查它是否为空.如果它为null,那么我知道没有传入值或有人传递给我null,它应该转换为某个默认值:
<c:if test="${visible == null}"><c:set var="visible" value="${true}" /></c:if>
Run Code Online (Sandbox Code Playgroud)
使用JSP EL和条件运算符,它更简洁,更简洁:
<c:set var="visible" value="${(empty visible) ? true : visible}" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11666 次 |
最近记录: |