博客首页文章内容的缩略显示

  1. 一般你进入别人博客的时候, 会显示他的文章概况, 文章内容只会显示一部分, 超过一定字数, 就用"..."代替.
  2.  刚碰到这个问题的时候, 不知道怎么解决, 想google一下, 也想不出关键词怎么定义, 索性搜了下, 找了第一个方法: 在hql里面使用case when then else end 语法
    select c.id from QuCodeRegion c where case when c.id>'1' then '111' else '333' END='111' 
     上面是网络上的例子, 但是发现跟我的结合不方便
    String findByUserself_hql = "select a from Article a where a.deleted = false order by a.pubDate desc";
     我照葫芦画瓢, 将case加到我的hql里面去, 一直报hql语法错误,
    select a from Article a where a.deleted = false case a.title when len(a.title)>150 then left(a.title, 35) else a.title end order by a.pubDate desc
     但是我的流程已经定了, 只有查询出整个article实体, 再封装到list中去, 假如改成a.id, a.name, a.title......, 那存到list中的就是数组, 我的整个流程就都需要修改, 没办法, 再找其他的办法.
  3. 朋友又给我一个方法, 把每个数组里面的值都取出来, 封装到article实体里, 再存到list里, 这确实是个笨但却十分有效的方法, 万不得已, 我不会用这个方法, 假如数据量大的话, 速度很慢, 而且可能出现内存溢出.
  4. 接着来, 后台办不了, 我来前台试试, 群里有人告诉我, html有属性可以实现, 我接着搜, 发现css里可以实现, 代码如下
    style= "height:30px;overflow:hidden;text-overflow:ellipsis;"
    
     这是个简单但功能不足的方法, 文章内容确实是只能显示前30px高度的内容, 但是我还需要在省略文章的后面加上"......", 貌似css没法做到这点, 没办法, 继续.
  5. 下面我想到了freemarker, 这绝对可以实现
    <#if news.title?length lt 13 > ${news.title} 
    <#else> ${news.title[0..12]}... 
    </#if>
    
    
     这是网上别人的做法, 我摘抄了下来, 回头一想, 要用到freemarker, 需要配置, 影响别的开发人员, 还要页面嵌入ftl, 会影响美工人员的工作, 先放着, 算个备用方案.
  6. 最后用js
    var context = document.all("context");
    for(var i=0;i<context.length;i++){
            if(context[i].innerHTML.length > 150){
    	context[i].innerHTML = context[i].innerHTML.substring(0,149) + "      ......" ;
            }
    }
     本来不知道document.all, 费了很大的周折, 它的功能就是获得所有id=context的节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值