在JSP </c:out>中将自定义属性添加到<c:out>标记

时间:2012-06-16 11:32:17

标签: jsp jstl jsp-tags

我是JSP新手,所以在使用JSP标签显示某些消息时遇到问题 我希望按照这种约定显示这些消息:如果文本的长度等于或小于50,则它将显示整个文本内容,否则只显示前50个字符并在其尾部附加“...”。 /强>
我正在考虑添加一个属性(称为maxDisplayChars,类型为整数)的解决方案来执行此操作。如果指定了此属性,则将执行显示约定,否则将默认行为保留默认行为。这个附加属性将帮助我减少代码更改,只需查看需要应用此规则的应用程序的哪个部分并“插入”此属性。
你认为这个解决方案有可能吗?如果是,那么如何实现它(抱歉,我只是JSP和JSTL -_-的新手),如果没有,有任何其他方法可以解决这个问题吗?
非常感谢你。

1 个答案:

答案 0 :(得分:1)

您有三个合理的选择:

1。使用JSP自定义标记缩短(brief intro
2。在数据到达您的JSP之前缩短数据 3。使用JavaScript在客户端执行此操作,例如,使用jQuery truncator

每个人都有优点和缺点。


自定义标记

(也可以是Java,但是很简单。)易于实现,允许使用JSP中的参数选择大小,可以包括您想要的任何选项,包括与JS相关的内容(参见#3)。

在JSP之前缩短

最大的缺点是您在后端代码中选择了长度,而更改则意味着重新编译和部署。例如,您可以将文本切成40个字符。

使用JavaScript

最灵活。如果你缩小巨大的字符串可能不是最佳的,在这种情况下我会考虑自定义标记和JS的组合。

很好的一点是你可以做一些事情,比如把剩下的文本(截断的部分)放到一个悬停触发的弹出窗口中,然后使用其他人的代码。您也可以在自定义标记中使用相同的JS,从而产生非常强大的解决方案。