JSP标记,缩短了iffing null属性

JSP标记,缩短了iffing null属性,jsp,if-statement,jsp-tags,Jsp,If Statement,Jsp Tags,我正在寻找一种更简洁的方法来编写这样的jsp代码段: <a href="${model.link}" class="button"<c:if test="${not empty model.title"> title="${model.title}"</c:if>> 不会正常工作,因为值永远不会为null(因为它是安全的字符串concat) 有没有办法把这些简单的东西写得更短、更干净、更好? <c:if test = "${not empty mode

我正在寻找一种更简洁的方法来编写这样的jsp代码段:

<a href="${model.link}" class="button"<c:if test="${not empty model.title"> title="${model.title}"</c:if>>
不会正常工作,因为值永远不会为null(因为它是安全的字符串concat)

有没有办法把这些简单的东西写得更短、更干净、更好?


<c:if test = "${not empty model.title}">
<c:set var = "title" value = "title = '${model.title}'"/>
</c:if>
<a href="${model.link}" class="button" ${title}>
您还可以执行自定义标记库,因此最终会得到如下结果:

<my:link class = "button" model = "${model}">...</my:link>
。。。

由于servlet规范,您可以将taglib实现为一个jsp片段,也可以一直使用Java

<a href="${model.link}" class="button"<% if (model.title != null) { %> title="${model.title}"<% } %>>

向上投票支持你的努力,但是这一点也不干净。感谢您提供的转义技巧,但我实际上是在内部类实现中这样做的。请为您的努力投票,但这在任何方面都不干净。视情况而定,我个人不喜欢看到
<a href="${model.link}" class="button"<% if (model.title != null) { %> title="${model.title}"<% } %>>
StringEscapeUtils.escapeHtml(mode.title)