【问题标题】:Value of required=false custom attribute in tag file if not set?如果未设置,标​​记文件中 required=false 自定义属性的值?
【发布时间】:2014-02-21 16:01:43
【问题描述】:

我的 .tag 文件中定义了以下属性:

<%@ attribute name="cssFiles" required="false" type="java.lang.String" description="comma delimited list of .css files to link" %>

然后再往下是这样使用的:

<c:forEach items="${fn:split(cssFiles,',')}" var="cssFilename">
    <link rel="stylesheet" type="text/css" href="/resources/css/${cssFilename}.css" />
</c:forEach>

每当我调用此标签时未设置属性时,我都会在 html 中看到此链接:

<link rel="stylesheet" type="text/css" href="/resources/css/.css">

属性设置为 null 还是空字符串?无论哪种情况,是否有一个jstl函数来做hasText()?

【问题讨论】:

    标签: jsp tags jstl


    【解决方案1】:
    <c:if test="${!empty cssFiles}">
        ...
    </c:if>
    

    您应该使用&lt;c:forTokens&gt; 而不是&lt;c:forEach&gt;

    【讨论】:

    • 这行得通,但我想补充一点,做 fn:trim(cssFiles) 可能是一个更强大的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多