当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Java  » Web编程
分享到: 
收藏 +0
4
十力内容管理系统简要
短暂的两个星期过去了,十力内容管理系统正式上线测试;操作简单,易用,界面友好,逻辑清晰,反映快速。
系统是基于页面模版生成静态页的方式;在程序上已经做了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最新版

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||| 特 别 提 示:本系统强烈希望各界朋友的建议和改进,对系统功能完善者本人付费!||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

运行环境:
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文件中,
<!-- 数据库用户名--请修改-->  
<property name="hibernate.connection.username" value="userName"/>  
 <!-- 数据库密码--请修改-->  
<property name="hibernate.connection.password" value="passWord"/> 
<!-- 数据库连接URL -->  
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8"/>  
{ 注意:没有数据库请先创建数据库。方法如下:运行: cmd;输入:mysql -uuserName  -ppassWord (回车)
create database databaseName default character set utf8 collate utf8_general_ci;(回车),OK}
3、启动Tomcat完成后,访问:http://localhost,看到主页演示地址一样画面,代表成功。

用户名:611041314@qq.com
密码:test

源码与演示:源码出处 演示出处

代码片段(7) [全屏查看所有代码]

1. [图片] src.jpg    

2. [图片] beans.jpg    

3. [图片] struts21.jpg    

4. [图片] struts22.jpg    

5. [图片] webroot.jpg    

6. [代码][Java]代码     跳至 [6] [7] [全屏预览]

	public String Save() {
		// 是否有数据
		if (getData() == null)
			return "main";
		// 校验数据内容
				if(	CheckTheData(getData()) == null){
					System.out.println("数据内容不规范。");
					return "main";
				}
		// 保存数据
				System.out.println(getData().getOrigin());
				System.out.println(getData().getAmount());
		dataService.save(getData());
		Data dataAbc = dataService.getDataForLatestNews(1);//准备静态化
		toIndex(dataAbc);	//静态化
	
		System.out.println("A new data Saved is ok.");
		// 返回本栏目数据到页面
		GetCKCP();
		// 返回栏目管理主页
		return "dataMain";		
	}

7. [文件] PageeAction.java ~ 9KB     下载(16)     跳至 [6] [7] [全屏预览]

package Web;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionContext;
import freemarker.template.Configuration;
import freemarker.template.Template;
import Service.ChannelService;
import Service.DataService;
import Service.KeywordService;
import Service.PageeService;
import Tool.FreemarkerUtil;

import Bean.Channel;
import Bean.Data;
import Bean.Keyword;
import Bean.Pagee;


@Controller
@Scope("prototype")
public class PageeAction {
	private Pagee pagee;
	private List<Pagee> pagees;
	private List<Channel> channels;
	private List<Keyword> keywords;
	private List<Keyword> keywordss;
	
	private List<Data> Datas;
	public String basePath = "";
	public Map<String, Object> indexDatas = new HashMap<String, Object>();
 	private HttpServletRequest request;
	private Configuration configuration;
	private static final String DEFAULT_ENCODING = "UTF-8";
	public String fileURL;
	private FreemarkerUtil freemarkerUtil = new FreemarkerUtil();
	
	@Resource
	private PageeService pageeService;
	@Resource
	private ChannelService channelService;
	@Resource
	private KeywordService keywordService;
	@Resource
	private DataService dataService;
	private String outFileName;
	private String templateFileName;
	public Template template;
	
	public String GetPageeInfo(){
		
		this.pagee = pageeService.GetPageeForName(getPagee().getPageName());
		ActionContext.getContext().put("pagee", this.pagee);
		System.out.println("获取" + this.pagee.getPageName() + "pagee信息成功!" );
		return "json";
	}
	
	public String ToHTML(){
		
		String pageN = getPagee().getPageName();		
		this.channels = channelService.getChannelsForPagee(getPagee().getPageName());
		
		for (Channel channel : this.channels) {

			this.keywords = keywordService.findForChannelID(Integer
					.toString(channel.getId()));
			 
			if (this.keywords.size() > 0) {
				for (Keyword keyword : this.keywords) {

				
					this.Datas = dataService.getDatasForParent( Integer.toString(keyword.getId()), 0, 0);
					try{
					
						if(this.Datas.size() > 0){
							System.out.println("dataAbcs size : " + this.Datas.size());
							for(Data dataAbc : this.Datas ){
								
								System.out.println("dataAbc OK:" + dataAbc.getId() );
								
							}
							this.indexDatas.put(keyword.getEnN(), this.Datas );
						}
					}catch(Exception e){
					
						System.out.println(e);
						
					}
				}
			}
		}
		
		
		
		
		
		/***********************/
		init(null);
		//page对象路径是否为空
		
		this.pagee = pageeService.GetPageeForName(pageN);
		
		this.indexDatas.put("title", this.pagee.getTitle());
		this.indexDatas.put("keywords", this.pagee.getKeywords());
		this.indexDatas.put("description", this.pagee.getDescription());
		
		if (this.pagee.getPageTempletURL() != null	&& this.pagee.getPageTempletURL().trim() != "") {
			templateFileName = this.pagee.getPageTempletURL() + this.pagee.getPageName() + ".html";
		} else {

			templateFileName = this.pagee.getPageName() + ".html";
		}
		if (this.pagee.getPageURL() != null && this.pagee.getPageURL().trim() != "") {
			outFileName = this.pagee.getPageURL() + this.pagee.getPageName()
					+ ".html";

		} else {

			outFileName = this.pagee.getPageName() + ".html";

		}

		
		try {
			System.out.println("------进入template-------");
			template = configuration.getTemplate(templateFileName);
			template.setEncoding(DEFAULT_ENCODING);
		} catch (IOException e) {
			System.out.println("获取模版失败!");
			e.printStackTrace();
		}
		System.out.println("------ 模版准备生成HTML文件完成----");
		
		setWebContentROOT();
		
		freemarkerUtil.fprint(template, indexDatas, fileURL, outFileName);

		System.out.println("输出的文件本地路径是:" + fileURL + outFileName);
		System.out.println("文件访问路径是:" + basePath + outFileName);
		System.out.println("FreeMaker生成页面成功!");
		
		/*****************/
		
		
		return "ToHTML";
	}
	
	/**
	 * configuration
	 * 
	 * @param outFileURL
	 *            输出文件路径,以“/”开头。Null 输出文件到网站跟目录。必须传值
	 * @param outFileName
	 *            输出文件名称,以“/”开头
	 */
	private void init(String outFileURL) {

		configuration = new Configuration();
		configuration.setDefaultEncoding(DEFAULT_ENCODING);
		configuration.setEncoding(Locale.CHINA, DEFAULT_ENCODING);

		ActionContext ac = ActionContext.getContext();
		ServletContext sc = (ServletContext) ac
				.get(ServletActionContext.SERVLET_CONTEXT);
		if (outFileURL != null) {
			this.fileURL = sc.getRealPath(outFileURL);// 网站本地绝对目录
		} else {
			this.fileURL = sc.getRealPath("/");// 网站本地绝对目录
		}

		// 设置FreeMarker的模版文件位置
		configuration.setServletContextForTemplateLoading(
				(ServletContext) ac.get(ServletActionContext.SERVLET_CONTEXT),
				"skin");//模版文件夹

	}

	private void setWebContentROOT() {
		request = ServletActionContext.getRequest();
		basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
		String index = request.getScheme() + "://" + request.getServerName() + ":"	+ request.getServerPort();
		indexDatas.put("index",	index);
		indexDatas.put("basePath", basePath);
		

	}
	
	public String AddUI(){
		//校验数据省略
		//pageeService.Save( getPagee());
		System.out.println("pagee save dome!");
		System.out.println("获取频道数据完毕!");

		
		// 获取频道数据
		setWebContentROOT();
		return "AddUI";		
	}
	public String Add(){
		//校验数据省略
		pageeService.Save( getPagee());
		System.out.println("pagee save dome!");
		setWebContentROOT();
		Lists();
		return "Lists";		
	}
	
	
	public String Delete(){
		//校验数据省略
		pageeService.Delete( getPagee().getId());
		System.out.println("pagee Delete dome!");
		return "main";		
	}
	
	public String UpdateUI(){
		//校验数据省略
		this.pagee = pageeService.GetPageeForName(getPagee().getPageName());
		ActionContext.getContext().put("pagee", this.pagee);
 		System.out.println("pagee save dome!");
		setWebContentROOT();
		return "UpdateUI";		
	}
	
	public String Update(){
		//校验数据省略
		
		System.out.println("pagee Delete dome!");
		pageeService.Update( getPagee());
		setWebContentROOT();
		Lists();
		return "Lists";		
	}
	
	public String Lists(){
		//校验数据省略
		this.pagees = pageeService.GetPagees();
		ActionContext.getContext().put("pagees", this.pagees );
		System.out.println("Get Pagees dome2!");
		setWebContentROOT();
		return "Lists";		
	}
	
	public String GetChannels(){
		
	
		List<Keyword> KeywordAbc = new ArrayList<Keyword>();
		this.channels = channelService.getChannelsForPagee(getPagee().getPageName());
		
		if (this.channels.size() > 0) {

			for (Channel channel : this.channels) {
				//System.out.println("---------------------------------------");
				
				this.keywordss = keywordService.findForChannelID(Integer.toString(channel.getId()));
				
				
				if (this.keywordss.size() > 0) {

					for (Keyword keyword : this.keywordss) {
							
						try {
							KeywordAbc.add(keyword);
							

						} catch (Exception e) {
							System.out.println(e);
							return "json2";
						}


					}

				} 
				/*
				else {
					ActionContext.getContext().put("msn", "Not keyword!");
					System.out.println("keywordss size :"+ this.keywordss.size());

				}
				*/

			}
			this.keywords = KeywordAbc;
			ActionContext.getContext().put("keywords", this.keywords); 
			ActionContext.getContext().put("channels", this.channels);
		}
		/*
		else {
			ActionContext.getContext().put("msn", "Not channel!");
			System.out.println("channels size :" + this.keywordss.size());
		}
		*/
		
		
		
		
		
		return "json";
	}
	

	
	
	
	
	
	
	
	
	
	/////////////////////

	public Pagee getPagee() {
		return pagee;
	}

	public void setPagee(Pagee pagee) {
		this.pagee = pagee;
	}

	
	public List<Channel> getChannel() {
		return channels;
	}
	public void setChannel(List<Channel> channels) {
		this.channels = channels;
	}
	public List<Pagee> getPagees() {
		return pagees;
	}

	public void setPagees(List<Pagee> pagees) {
		this.pagees = pagees;
	}



	public List<Keyword> getKeywords() {
		return keywords;
	}



	public void setKeywords(List<Keyword> keywords) {
		this.keywords = keywords;
	}



	public List<Keyword> getKeywordss() {
		return keywordss;
	}

	public void setKeywordss(List<Keyword> keywordss) {
		this.keywordss = keywordss;
	}
 


	public List<Data> getDatas() {
		return Datas;
	}



	public void setDatas(List<Data> datas) {
		Datas = datas;
	}


	
	
	

}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(21)

  • 1楼:可豆儿 发表于 2013-05-28 10:00 回复此评论
    楼主加油
  • 2楼:从无到有 发表于 2013-05-28 10:06 回复此评论
    谢谢哈!全是自学的,能写个这样的系统,算是JavaWeb入门了。
  • 3楼:Rainbow7色 发表于 2013-05-28 11:54 回复此评论

    抽时间看看! 支持一下

  • 4楼:高跟男爵 发表于 2013-05-28 13:16 回复此评论
    我团队也在开发一个CMS  采用springMVC + spring3 + hib4 + easyUI + bootstrap 等等···· 你这个不错  加油  
  • 5楼:阿伏流 发表于 2013-05-28 18:10 回复此评论
    楼主加油,建议把包名写规范一些~
  • 6楼:独钓渔 发表于 2013-05-29 09:24 回复此评论
    这个写得好,向楼主学习。不过基础不好,对三个框架都不了解呀。
  • 7楼:76928995 发表于 2013-05-29 16:43 回复此评论
    鼓掌一个,楼主的源码的哪下啊,官网上也没看到呢
  • 8楼:納傷_狠唯美 发表于 2013-05-30 09:03 回复此评论
    楼主,没源码啊?
  • 9楼:小薇 发表于 2013-05-30 09:10 回复此评论

    引用来自“Track3r”的评论

    楼主加油,建议把包名写规范一些~
    +1
  • 10楼:御风林海 发表于 2013-05-30 10:51 回复此评论
    怎么没有源码?请把源码放到git@osc上
  • 11楼:Glogo 发表于 2013-05-30 11:56 回复此评论

    支持支持!!LZ加油!

  • 12楼:缪斯的情人 发表于 2013-05-30 14:36 回复此评论
    如果想长期维护这个cms,建议先放弃SSH,代码量大,不轻量,和其他cms比没有任何优势。如果是初学实验的话也不建议使用SSH,jsp+servlet搞好就行。
  • 13楼:tubexu 发表于 2013-05-30 15:49 回复此评论
    java web还不懂。
  • 14楼:Zero__One 发表于 2013-05-30 18:01 回复此评论
    很不错哈.   加油, 全力支持你!
  • 15楼:limiyun 发表于 2013-05-30 21:56 回复此评论
    其实只用spring系列就可以了。相对还能够简单点
  • 16楼:飘逸的逸 发表于 2013-05-31 09:11 回复此评论
    上面是所有的文件?哪里下?
  • 17楼:Le_Guto 发表于 2013-05-31 16:43 回复此评论
    上面是所有的文件?哪里下?
  • 18楼:晓亮 发表于 2013-06-04 14:48 回复此评论

    没源码,有war包也可以,部署起来看看!只是在哪里下载呢?

  • 19楼:aspboy 发表于 2013-06-05 23:55 回复此评论

    有没有后台演示地址?

  • 20楼:dongcf 发表于 2014-12-25 13:47 回复此评论
    在哪下载?
开源从代码分享开始 分享代码