请选择 进入手机版 | 继续访问电脑版
查看: 1177|回复: 4

[Java语言] 十力内容管理系统KingblocCMS,JavaCMS,网站内容管理,轻量级快速网站建立系统

3万

主题

3万

帖子

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
100197
发表于 2016-8-13 15:19:54
十力内容管理系统简要
短暂的两个星期过去了,十力内容管理系统正式上线测试;操作简单,易用,界面友好,逻辑清晰,反映快速。
系统是基于页面模版生成静态页的方式;在程序上已经做了SEO优化。
严格按照MVC模式设计,java语言编写,运行于Tomcat平台。
集成主流的Java开源框架如:Struts2,Hibernate3(JPA规范),Spring3,FreeMarker。
采用主流数据库之一MySQL作为发布数据库,体积小,效率高。
十力内容管理系统适合初学JavaWeb、或已经有javaweb开发经验的朋友学习和研究。
本系统经过多次测试,比网上流传的开源内容管理系统稳定性强,实用性高,后台操作效率高。
因首次发布本系统,难免有bug , 多多谅解和投诉。
在使用中有任何建议和意见,请在系统后台留言或加十力内容管理Q群( 27278987 )交流。


推广关键词:
JavaEE内容管系统,Java内容管理系统, Java新闻系统,JavaWeb新闻系统,新闻系统,内容管理,自助建站系统,网站系统,企业网站系统,定制企业网站
java版企业网站系统。SSJ系统整合,MVC模式的内容管理开源系统。

功能介绍:
用户管理;
页面管理和配置;
频道管理栏目规划;
栏目管理;
数据管理;
全静态化页面;
自由定制网站界面;
数据配置;
文章分享;
技术便捷求助和投诉;
集成CKEditor和CKFinder最新版



回复

使用道具 举报

0

主题

11

帖子

40

积分

猿er

Rank: 1

积分
40
发表于 2016-8-15 09:47:14
|
回复 支持 反对

使用道具 举报

0

主题

20

帖子

56

积分

猿er

Rank: 1

积分
56
发表于 2016-8-15 10:55:56
| 特 别 提 示:本系统强烈希望各界朋友的建议和改进,对系统功能完善者本人付费!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

54

积分

猿er

Rank: 1

积分
54
发表于 2016-8-15 11:39:15
|
回复 支持 反对

使用道具 举报

0

主题

20

帖子

56

积分

猿er

Rank: 1

积分
56
发表于 2016-8-17 09:52:18
||

运行环境:
Win+,Linux,mysql5.0+,tomcat7.0, java6。

演示网址:http://www.kingbloc.com/software.html

安装三步骤:
1、 停止Tomcat,解压 ROOT.rar并复制ROOT文件夹到Tomcat的webApps目录下;

2、修改WEB-INF\classes\META-INF下的persistence.xml文件中,






{ 注意:没有数据库请先创建数据库。方法如下:运行: cmd;输入:mysql -uuserName -ppassWord (回车)
create database databaseName default character set utf8 collate utf8_general_ci;(回车),OK}
3、启动Tomcat完成后,访问:http://localhost,看到主页演示地址一样画面,代表成功。

用户名:611041314@qq.com
密码:test
  1. public String Save() {
  2. // 是否有数据
  3. if (getData() == null)
  4. return "main";
  5. // 校验数据内容
  6. if( CheckTheData(getData()) == null){
  7. System.out.println("数据内容不规范。");
  8. return "main";
  9. }
  10. // 保存数据
  11. System.out.println(getData().getOrigin());
  12. System.out.println(getData().getAmount());
  13. dataService.save(getData());
  14. Data dataAbc = dataService.getDataForLatestNews(1);//准备静态化
  15. toIndex(dataAbc); //静态化
  16. System.out.println("A new data Saved is ok.");
  17. // 返回本栏目数据到页面
  18. GetCKCP();
  19. // 返回栏目管理主页
  20. return "dataMain";
  21. }
复制代码
  1. package Web;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Locale;
  7. import java.util.Map;
  8. import javax.annotation.Resource;
  9. import javax.servlet.ServletContext;
  10. import javax.servlet.http.HttpServletRequest;
  11. import org.apache.struts2.ServletActionContext;
  12. import org.springframework.context.annotation.Scope;
  13. import org.springframework.stereotype.Controller;
  14. import com.opensymphony.xwork2.ActionContext;
  15. import freemarker.template.Configuration;
  16. import freemarker.template.Template;
  17. import Service.ChannelService;
  18. import Service.DataService;
  19. import Service.KeywordService;
  20. import Service.PageeService;
  21. import Tool.FreemarkerUtil;
  22. import Bean.Channel;
  23. import Bean.Data;
  24. import Bean.Keyword;
  25. import Bean.Pagee;
  26. @Controller
  27. @Scope("prototype")
  28. public class PageeAction {
  29. private Pagee pagee;
  30. private List<Pagee> pagees;
  31. private List<Channel> channels;
  32. private List<Keyword> keywords;
  33. private List<Keyword> keywordss;
  34. private List<Data> Datas;
  35. public String basePath = "";
  36. public Map<String, Object> indexDatas = new HashMap<String, Object>();
  37. private HttpServletRequest request;
  38. private Configuration configuration;
  39. private static final String DEFAULT_ENCODING = "UTF-8";
  40. public String fileURL;
  41. private FreemarkerUtil freemarkerUtil = new FreemarkerUtil();
  42. @Resource
  43. private PageeService pageeService;
  44. @Resource
  45. private ChannelService channelService;
  46. @Resource
  47. private KeywordService keywordService;
  48. @Resource
  49. private DataService dataService;
  50. private String outFileName;
  51. private String templateFileName;
  52. public Template template;
  53. public String GetPageeInfo(){
  54. this.pagee = pageeService.GetPageeForName(getPagee().getPageName());
  55. ActionContext.getContext().put("pagee", this.pagee);
  56. System.out.println("获取" + this.pagee.getPageName() + "pagee信息成功!" );
  57. return "json";
  58. }
  59. public String ToHTML(){
  60. String pageN = getPagee().getPageName();
  61. this.channels = channelService.getChannelsForPagee(getPagee().getPageName());
  62. for (Channel channel : this.channels) {
  63. this.keywords = keywordService.findForChannelID(Integer
  64. .toString(channel.getId()));
  65. if (this.keywords.size() > 0) {
  66. for (Keyword keyword : this.keywords) {
  67. this.Datas = dataService.getDatasForParent( Integer.toString(keyword.getId()), 0, 0);
  68. try{
  69. if(this.Datas.size() > 0){
  70. System.out.println("dataAbcs size : " + this.Datas.size());
  71. for(Data dataAbc : this.Datas ){
  72. System.out.println("dataAbc OK:" + dataAbc.getId() );
  73. }
  74. this.indexDatas.put(keyword.getEnN(), this.Datas );
  75. }
  76. }catch(Exception e){
  77. System.out.println(e);
  78. }
  79. }
  80. }
  81. }
  82. /***********************/
  83. init(null);
  84. //page对象路径是否为空
  85. this.pagee = pageeService.GetPageeForName(pageN);
  86. this.indexDatas.put("title", this.pagee.getTitle());
  87. this.indexDatas.put("keywords", this.pagee.getKeywords());
  88. this.indexDatas.put("description", this.pagee.getDescription());
  89. if (this.pagee.getPageTempletURL() != null && this.pagee.getPageTempletURL().trim() != "") {
  90. templateFileName = this.pagee.getPageTempletURL() + this.pagee.getPageName() + ".html";
  91. } else {
  92. templateFileName = this.pagee.getPageName() + ".html";
  93. }
  94. if (this.pagee.getPageURL() != null && this.pagee.getPageURL().trim() != "") {
  95. outFileName = this.pagee.getPageURL() + this.pagee.getPageName()
  96. + ".html";
  97. } else {
  98. outFileName = this.pagee.getPageName() + ".html";
  99. }
  100. try {
  101. System.out.println("------进入template-------");
  102. template = configuration.getTemplate(templateFileName);
  103. template.setEncoding(DEFAULT_ENCODING);
  104. } catch (IOException e) {
  105. System.out.println("获取模版失败!");
  106. e.printStackTrace();
  107. }
  108. System.out.println("------ 模版准备生成HTML文件完成----");
  109. setWebContentROOT();
  110. freemarkerUtil.fprint(template, indexDatas, fileURL, outFileName);
  111. System.out.println("输出的文件本地路径是:" + fileURL + outFileName);
  112. System.out.println("文件访问路径是:" + basePath + outFileName);
  113. System.out.println("FreeMaker生成页面成功!");
  114. /*****************/
  115. return "ToHTML";
  116. }
  117. /**
  118. * configuration
  119. *
  120. * @param outFileURL
  121. * 输出文件路径,以“/”开头。Null 输出文件到网站跟目录。必须传值
  122. * @param outFileName
  123. * 输出文件名称,以“/”开头
  124. */
  125. private void init(String outFileURL) {
  126. configuration = new Configuration();
  127. configuration.setDefaultEncoding(DEFAULT_ENCODING);
  128. configuration.setEncoding(Locale.CHINA, DEFAULT_ENCODING);
  129. ActionContext ac = ActionContext.getContext();
  130. ServletContext sc = (ServletContext) ac
  131. .get(ServletActionContext.SERVLET_CONTEXT);
  132. if (outFileURL != null) {
  133. this.fileURL = sc.getRealPath(outFileURL);// 网站本地绝对目录
  134. } else {
  135. this.fileURL = sc.getRealPath("/");// 网站本地绝对目录
  136. }
  137. // 设置FreeMarker的模版文件位置
  138. configuration.setServletContextForTemplateLoading(
  139. (ServletContext) ac.get(ServletActionContext.SERVLET_CONTEXT),
  140. "skin");//模版文件夹
  141. }
  142. private void setWebContentROOT() {
  143. request = ServletActionContext.getRequest();
  144. basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
  145. String index = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
  146. indexDatas.put("index", index);
  147. indexDatas.put("basePath", basePath);
  148. }
  149. public String AddUI(){
  150. //校验数据省略
  151. //pageeService.Save( getPagee());
  152. System.out.println("pagee save dome!");
  153. System.out.println("获取频道数据完毕!");
  154. // 获取频道数据
  155. setWebContentROOT();
  156. return "AddUI";
  157. }
  158. public String Add(){
  159. //校验数据省略
  160. pageeService.Save( getPagee());
  161. System.out.println("pagee save dome!");
  162. setWebContentROOT();
  163. Lists();
  164. return "Lists";
  165. }
  166. public String Delete(){
  167. //校验数据省略
  168. pageeService.Delete( getPagee().getId());
  169. System.out.println("pagee Delete dome!");
  170. return "main";
  171. }
  172. public String UpdateUI(){
  173. //校验数据省略
  174. this.pagee = pageeService.GetPageeForName(getPagee().getPageName());
  175. ActionContext.getContext().put("pagee", this.pagee);
  176. System.out.println("pagee save dome!");
  177. setWebContentROOT();
  178. return "UpdateUI";
  179. }
  180. public String Update(){
  181. //校验数据省略
  182. System.out.println("pagee Delete dome!");
  183. pageeService.Update( getPagee());
  184. setWebContentROOT();
  185. Lists();
  186. return "Lists";
  187. }
  188. public String Lists(){
  189. //校验数据省略
  190. this.pagees = pageeService.GetPagees();
  191. ActionContext.getContext().put("pagees", this.pagees );
  192. System.out.println("Get Pagees dome2!");
  193. setWebContentROOT();
  194. return "Lists";
  195. }
  196. public String GetChannels(){
  197. List<Keyword> KeywordAbc = new ArrayList<Keyword>();
  198. this.channels = channelService.getChannelsForPagee(getPagee().getPageName());
  199. if (this.channels.size() > 0) {
  200. for (Channel channel : this.channels) {
  201. //System.out.println("---------------------------------------");
  202. this.keywordss = keywordService.findForChannelID(Integer.toString(channel.getId()));
  203. if (this.keywordss.size() > 0) {
  204. for (Keyword keyword : this.keywordss) {
  205. try {
  206. KeywordAbc.add(keyword);
  207. } catch (Exception e) {
  208. System.out.println(e);
  209. return "json2";
  210. }
  211. }
  212. }
  213. /*
  214. else {
  215. ActionContext.getContext().put("msn", "Not keyword!");
  216. System.out.println("keywordss size :"+ this.keywordss.size());
  217. }
  218. */
  219. }
  220. this.keywords = KeywordAbc;
  221. ActionContext.getContext().put("keywords", this.keywords);
  222. ActionContext.getContext().put("channels", this.channels);
  223. }
  224. /*
  225. else {
  226. ActionContext.getContext().put("msn", "Not channel!");
  227. System.out.println("channels size :" + this.keywordss.size());
  228. }
  229. */
  230. return "json";
  231. }
  232. /////////////////////
  233. public Pagee getPagee() {
  234. return pagee;
  235. }
  236. public void setPagee(Pagee pagee) {
  237. this.pagee = pagee;
  238. }
  239. public List<Channel> getChannel() {
  240. return channels;
  241. }
  242. public void setChannel(List<Channel> channels) {
  243. this.channels = channels;
  244. }
  245. public List<Pagee> getPagees() {
  246. return pagees;
  247. }
  248. public void setPagees(List<Pagee> pagees) {
  249. this.pagees = pagees;
  250. }
  251. public List<Keyword> getKeywords() {
  252. return keywords;
  253. }
  254. public void setKeywords(List<Keyword> keywords) {
  255. this.keywords = keywords;
  256. }
  257. public List<Keyword> getKeywordss() {
  258. return keywordss;
  259. }
  260. public void setKeywordss(List<Keyword> keywordss) {
  261. this.keywordss = keywordss;
  262. }
  263. public List<Data> getDatas() {
  264. return Datas;
  265. }
  266. public void setDatas(List<Data> datas) {
  267. Datas = datas;
  268. }
  269. }
复制代码
回复 支持 反对

使用道具 举报