jeecms 的体验

在ITEYE上看到很多JEECMS的帖子, 于是自己下载下来, 体验了一下。

 

JEECMS采用hibernate3+spring mvc+spring3+freemarker技术架构。

 

JEECMS的自定义模型吸引我了, 所谓自定义模型, 是能定义栏目或者内容的字段。界面如下

 

 



 

 

自己定义了栏目内容的模型, 然后看了一下数据库,

MariaDB [jeecms]> show table
+------------------------+
| Tables_in_jeecms       |
+------------------------+
| jc_acquisition         |
| jc_acquisition_history |
| jc_acquisition_temp    |
| jc_advertising         |
| jc_advertising_attr    |
| jc_advertising_space   |
| jc_channel             |
| jc_channel_attr        |
| jc_channel_ext         |
| jc_channel_model       |
| jc_channel_txt         |
| jc_channel_user        |
| jc_chnl_group_contri   |
| jc_chnl_group_view     |
| jc_comment             |
| jc_comment_ext         |
| jc_config              |
| jc_config_attr         |
| jc_content             |
| jc_content_attachment  |
| jc_content_attr        |
| jc_content_channel     |
| jc_content_check       |
| jc_content_count       |
| jc_content_ext         |
| jc_content_group_view  |
| jc_content_picture     |
| jc_content_tag         |
| jc_content_topic       |
| jc_content_txt         |
| jc_content_type        |
| jc_contenttag          |
| jc_dictionary          |

 

MariaDB [jeecms]> desc jc_content_attr;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| content_id | int(11)      | NO   | MUL | NULL    |       |
| attr_name  | varchar(30)  | NO   |     | NULL    |       |
| attr_value | varchar(255) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

 

自定义的字段都是存在  jc_content_attr 表当中,第一感觉jc_content_attr这个表会有性能问题,

虽然之后搜内容时, 会用lucence index, 但在hibernate显示页面都会查询这个表。
有些东西看似做的灵活, 内容一多,会存在性能问题。
 
接着看了一下动态页执行的controller
 
DynamicPageAct

	/**
	 * 动态页入口
	 */
	@RequestMapping(value = "/**/*.*", method = RequestMethod.GET)
	public String dynamic(HttpServletRequest request,
			HttpServletResponse response, ModelMap model) {
		// 尽量不要携带太多参数,多使用标签获取数据。
		// 目前已知的需要携带翻页信息。
		// 获得页号和翻页信息吧。
		int pageNo = URLHelper.getPageNo(request);
		String[] params = URLHelper.getParams(request);
		PageInfo info = URLHelper.getPageInfo(request);
		String[] paths = URLHelper.getPaths(request);
		int len = paths.length;
		if (len == 1) {
			// 单页
			return channel(paths[0], pageNo, params, info, request, response,
					model);
		} else if (len == 2) {
			if (paths[1].equals(INDEX)) {
				// 栏目页
				return channel(paths[0], pageNo, params, info, request,
						response, model);
			} else {
				// 内容页
				try {
					Integer id = Integer.parseInt(paths[1]);
					return content(id, pageNo, params, info, request, response,
							model);
				} catch (NumberFormatException e) {
					log.debug("Content id must String: {}", paths[1]);
					return FrontUtils.pageNotFound(request, response, model);
				}
			}
		} else {
			log.debug("Illegal path length: {}, paths: {}", len, paths);
			return FrontUtils.pageNotFound(request, response, model);
		}
	}
 
如果是栏目页就一定有index 字符, 就像http://localhost:8080/news/index.htm
现在CMS设计一般都会隐藏index.html, 还不如用urlrewrite 这样的开源JAR包重写一下。
看到这2个问题,  考虑是否真正用它来实现自己的系统, 或者重构一下, 有些东西还不如自己写一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值