扩展 h:outputText 以实现自定义功能
我使用 JSF + RF 已有 2 年多了,但一直没有机会扩展组件的现有功能。
现在的要求是我必须修剪字符串并在超过 25 个字符时显示它。
这已经实现如下,
<c:choose>
<c:when test="#{fn:length(teststep.name) > 25}">
<h:outputText title="#{teststep.name}" value="#{fn:substring(teststep.name, 0, 25)}..."/>
</c:when>
<c:otherwise>
<h:outputText title="#{teststep.name}" value="#{teststep.name}"/>
</c:otherwise>
</c:choose>
但我在很多地方使用此代码(并且希望避免每次都使用 8 行样板代码),因此考虑自定义 h:outputText 来提供修剪功能。
您能让我知道如何在 JSF
问候中编写自定义标签吗? 萨提亚
I have been using JSF + RF for over 2 years and have'nt had a chance to extend the existing capabilities of components.
Now the requirement is I have to trim the string and display it if it is more than 25 characters.
This has been achieved as below
<c:choose>
<c:when test="#{fn:length(teststep.name) > 25}">
<h:outputText title="#{teststep.name}" value="#{fn:substring(teststep.name, 0, 25)}..."/>
</c:when>
<c:otherwise>
<h:outputText title="#{teststep.name}" value="#{teststep.name}"/>
</c:otherwise>
</c:choose>
But I use this code in lot many places (and want to avoid boilerplate code of 8 lines everytime) so thought of custom h:outputText to provide trim functionality.
Could you let me know how would I write a custom tag in JSF
Regards,
Satya
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您使用的是 JSP 而不是 Facelets,请将内容放入
/WEB-INF
中的.tag
文件中,例如/WEB-INF/tags/outputLimitedText .tag
。然后您可以按如下方式引用它:
您还可以使用
转换器
。您
还可以创建自定义 EL 函数。这样你最终会得到
这个答案中给出的 EL 函数的具体示例: 如何在 EL 中连接字符串?
Assuming that you're using JSP not Facelets, put the content in a
.tag
file in/WEB-INF
, like/WEB-INF/tags/outputLimitedText.tag
.Then you can reference it as follows:
You could also use a
Converter
.with
You could also create a custom EL function. So that you end up with
A concrete example of the EL function is given in this answer: How to concatenate Strings in EL?