0

我正在尝试完成与这个问题通常提出的一些不同的事情......

我的选择实际上包含两位信息,如下所示:

<select name="location" size="20" >
<c:forEach ...>
   <option value="${id}">${name} ${state}</option>
</c:forEach>
</select>

我知道 ${name} 的最大大小是 30,所以我想做的是用空格将其右填充为 30 个字符,这样我就可以设置列标题的样式(“名称”和“状态”)在选择上方,它们将相当接近对齐。
似乎没有任何标准 JSTL 标记可以对纯字符串执行此操作,还是我缺少一个?我想尝试避免在我的对象上创建单独的 getter,所以如果标签库可以实现这一点,那将是理想的。

4

1 回答 1

0

您可以使用fn:length函数尝试类似的操作:

<select name="location" size="20" >
    <c:forEach ...>
        <c:remove var="filling_spaces" scope="page"/>
        <c:forEach begin="0" end="${30 - fn:length(name)}" varStatus="status">
            <c:set var="filling_spaces" value="${filling_spaces} "/> 
                <%-- ^notice the space concatenation --%>
        </c:forEach>
        <option value="${id}">${name}${filling_spaces}${state}</option>
    </c:forEach>
</select>
于 2013-02-07T23:23:37.723 回答