- 一般你进入别人博客的时候, 会显示他的文章概况, 文章内容只会显示一部分, 超过一定字数, 就用"..."代替.
- 刚碰到这个问题的时候, 不知道怎么解决, 想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'
我照葫芦画瓢, 将case加到我的hql里面去, 一直报hql语法错误,String findByUserself_hql = "select a from Article a where a.deleted = false order by a.pubDate desc";
但是我的流程已经定了, 只有查询出整个article实体, 再封装到list中去, 假如改成a.id, a.name, a.title......, 那存到list中的就是数组, 我的整个流程就都需要修改, 没办法, 再找其他的办法.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里, 这确实是个笨但却十分有效的方法, 万不得已, 我不会用这个方法, 假如数据量大的话, 速度很慢, 而且可能出现内存溢出.
- 接着来, 后台办不了, 我来前台试试, 群里有人告诉我, html有属性可以实现, 我接着搜, 发现css里可以实现, 代码如下
这是个简单但功能不足的方法, 文章内容确实是只能显示前30px高度的内容, 但是我还需要在省略文章的后面加上"......", 貌似css没法做到这点, 没办法, 继续.style= "height:30px;overflow:hidden;text-overflow:ellipsis;"
- 下面我想到了freemarker, 这绝对可以实现
这是网上别人的做法, 我摘抄了下来, 回头一想, 要用到freemarker, 需要配置, 影响别的开发人员, 还要页面嵌入ftl, 会影响美工人员的工作, 先放着, 算个备用方案.<#if news.title?length lt 13 > ${news.title} <#else> ${news.title[0..12]}... </#if>
- 最后用js
本来不知道document.all, 费了很大的周折, 它的功能就是获得所有id=context的节点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) + " ......" ; } }
博客首页文章内容的缩略显示
最新推荐文章于 2021-09-03 22:08:59 发布