zyjustin 2008-01-02
前一段时间在做lifery新闻录入的时候发现有的新闻录入进去以后并不能显示出来,有的新闻显示正常,重新换一个新闻也能正常显示,当时时间很紧没有细看,心想反正换了一个可以显示先交给用户,没想上线后被用户当作BUG提出来了,元旦前最后一天查了一天终于查出来了问题,ViewArticleContentAction中excute有句代码
output=JournalArticleServiceUtil.getArticleContent(groupId,articleId,version,languageId,themeDisplay);就是在这句代码这里发生了变化,有的文章显示出来的值正常,有的偏偏在前面加上了<xml**>,查了下数据库里面的值除了内容以外其他的一模一样,最后没法只能用排除法,一点一点跟进去查,终于查到最后调用JournalArticleLocalServiceImpl类的getArticleDisplay方法中有如下代码:
SAXReaderreader=newSAXReader();
doc=reader.read(newStringReader(xml));原来他会优先对内容进行xml解析,如果能解析那么就把他当作是XMLF读出来,那些读不出来的内容看源码会发现语法写的很严紧,有开头必有结束</>,想要解决这个方法其实也很简单,在里面多加一些回车,换行,空格之类的就可以了,一般情况下文章都会有这些,而有些文章就一句话那就可能显示不出来了.