facelet中自定义El函数的实现

项目中使用了fck编辑内容,保存的内容中带有很多html标记,可是如果想在列表中显示显示内容时,这些html标记却破坏了列表的显示样式一行会被撑得很大。由于页面中的内容显示是用EL表达式来获取的,就试图找找可不可以在EL表达式中调用后台函数去除内容中的html标记,经过搜索发现EL自定义函数即可实现,实现代码如下:

1、增加一个自定义函数类,其中有个静态方法可被定义为EL函数,这里是html2Text

 

2、增加myfunction.taglib.xml文件,进行EL函数注册,以使它能被 Facelets 调用

3、在WEB-INF/web.xml 文件中注册facelets-taglib描述文件

  

4、至此就完成EL自定义函数的实现,调用方法如下(红色部分):

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:ui="http://java.sun.com/jsf/facelets"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:c="http://java.sun.com/jstl/core"
 xmlns:my="http://www.xxx.com.cn/myfunction"
 xmlns:h="http://java.sun.com/jsf/html" xml:lang="en" lang="en">
 <head>
  <title></title>
  <meta http-equiv="keywords" content="enter,your,keywords,here" />
  <meta http-equiv="description"
   content="A short description of this page." />
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 </head>
 <body>
      <h:outputText escape="false" value="#{my:html2Text(record.content)}">

 </body>
</html>

运行结果如图:

图1:fck编辑的内容

图1

图2:在列表中显示的内容

 

图2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值