package cn.newgxu.bbs.domain; import java.util.LinkedHashMap; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; import cn.newgxu.bbs.common.config.ForumConfig; import cn.newgxu.bbs.common.filter.FilterUtil; import cn.newgxu.jpamodel.JPAEntity; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * * @author polly * @since 4.0.0 * @version $Revision 1.1$ */ @Entity @Table(name = "content") public class Content extends JPAEntity { private static final long serialVersionUID = 1L; @Id @Column(name = "id") // @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="id_seq") // @SequenceGenerator(name="id_seq", sequenceName="seq_content") @GeneratedValue(strategy = GenerationType.IDENTITY) private int id = -1; @Column(name = "content", length = 100000) private String content; @Transient private String contentFilter; public Content() { } public Content(int id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { if (content == null || content.length() < 5) { throw new RuntimeException("您的回复内容过短!"); } /* * 考虑到 新旧 版本编辑器的兼容问题,这里需要将\r\n全部转换成无字符。 */ if(ForumConfig.NEW_5_0){ this.content=content.replaceAll("\r\n", ""); System.out.println("-------------------------------------------------修复了BR"); }else this.content = content; } public String getContentFilter() { if (this.contentFilter == null) { this.contentFilter = FilterUtil.replyContent(content); // this.contentFilter=tranStr(content); } // while(this.contentFilter.indexOf(" ")!=-1){ // this.contentFilter = // this.contentFilter.substring(0,this.contentFilter.indexOf(" ")) // +"    "+this.contentFilter.substring(this.contentFilter.indexOf(" ")+1); // } // this.contentFilter=this.contentFilter.replaceAll(" ","  "); // this.contentFilter=this.contentFilter.replaceAll(" "," "); // this.contentFilter=this.contentFilter.replaceAll(String.valueOf((char) // 13),"<br/>"); // this.contentFilter = tranStr(this.contentFilter); // System.out.println(); return this.contentFilter; } public static String tranStr(String oldStr) { int k = oldStr.indexOf(String.valueOf((" "))); while (k >= 0) { oldStr = oldStr.substring(0, k) + "  " + oldStr.substring(k + 2, oldStr.length()); k = oldStr.indexOf(String.valueOf(" ")); } int i = oldStr.indexOf(String.valueOf((char) 13));// 这里就是"/n" while (i > 0) { oldStr = oldStr.substring(0, i) + "<br>" + oldStr.substring(i + 1, oldStr.length()); i = oldStr.indexOf(String.valueOf((char) 13)); } int j = oldStr.indexOf(String.valueOf((char) 10)); while (j > 0) { oldStr = oldStr.substring(0, j) + "" + oldStr.substring(j + 1, oldStr.length()); j = oldStr.indexOf(String.valueOf((char) 10)); } return oldStr; } public int getId() { return id; } public void setId(int id) { this.id = id; } // ------------------------------------------------ public static Content get(int contentId) throws ObjectNotFoundException { return (Content) getById(Content.class, contentId); } // ------------------------------------------------ @SuppressWarnings("serial") @Override public String toString() { return "content" + new LinkedHashMap<String, Object>() { { put("id", id); put("content", content); put("contentFilter", getContentFilter()); } }.toString(); } }