JEECMS v3.0.1 beta版源码分析2

JEECMS v3.0.1 beta版发布,采用的是采用hibernate3+spring mvc+spring2+freemarker主流技术架构.


再对前台配置文件进行分析jeecms-servlet-front.xml

加载的资源文件
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

<property name="cacheSeconds" value="0"/>

<property name="basenames">

<list>
<value>/WEB-INF/languages/jeecms_front/messages</value>
<value>/WEB-INF/languages/fck/messages</value>
</list>
</property>
</bean>




/WEB-INF/languages/jeecms_front/messages

/WEB-INF/languages/fck/messages

因为前台和后台是分离的两个独立的
Springmvc messageSource中只加载front前台的资源文件
messages_cn.properties

#专题模板
tpl.topicIndex=专题导航页
tpl.topicChannel=专题栏目页
tpl.topicDefault=专题默认页


#专用模板
tpl.tagIndex=标签导航页
tpl.tagDetail=标签详情页
tpl.searchInput=搜索输入页
tpl.searchResult=搜索结果页
tpl.commentPage=评论页
tpl.rss=RSS


模板页面都是中文名称,如
/WEB-INF/t/cms/www/red/index/首页.html

#客户端包含模板
tpl.index=首页
在程序中使用tpl.index最后对应模板中的”首页.html”的”首页”

如FrontUtils.getTplPath(request, site.getSolutionPath(),

"index", "tpl.index");

public static String getTplPath(HttpServletRequest request, String solution, String dir, String name)
{
return solution + "/" + dir + "/" +
MessageResolver.getMessage(request, name, new Object[0]) + ".html";
}

public static String getTplPath(HttpServletRequest request, String solution, String dir, String name)
{
return solution + "/" + dir + "/" +
MessageResolver.getMessage(request, name, new Object[0]) + ".html";
}




使用multipartResolver视图解析器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>






配置拦截器
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">

<property name="interceptors">

<list>
<ref bean="frontContextInterceptor"/>

<ref bean="frontLocaleInterceptor"/>

</list>
</property>
</bean>




FrontContextInterceptor.java
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws ServletException
{
CmsSite site = null;
List<CmsSite> list = this.cmsSiteMng.getListFromCache();
int size = list.size();
if (size == 0)
throw new RuntimeException("no site record in database!");
if (size == 1) {
site = (CmsSite)list.get(0);
} else {
String server = request.getServerName();

for (CmsSite s : list)
{
if (s.getDomain().equals(server)) {
site = s;
break;
}

String alias = s.getDomainAlias();
if (!StringUtils.isBlank(alias)) {
for (String a : StringUtils.split(alias, ',')) {
if (a.equals(server)) {
site = s;
break;
}
}
}

String redirect = s.getDomainRedirect();
if (!StringUtils.isBlank(redirect)) {
for (String r : StringUtils.split(redirect, ',')) {
if (!r.equals(server)) continue;
try {
response.sendRedirect(s.getUrl());
} catch (IOException e) {
throw new RuntimeException(e);
}
return false;
}
}
}

if (site == null) {
throw new SiteNotFoundException(server);
}
}

CmsUtils.setSite(request, site);

CmsUser user = null;
Integer userId = this.authMng.retrieveUserIdFromSession(this.session, request);
if (userId != null) {
user = this.cmsUserMng.findById(userId);
}

if (user != null) {
CmsUtils.setUser(request, user);
}
return true;
}
JEECMS是JavaEE网站管理系统(Java Enterprise Edition Content Manage System)的简称。 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 · 采用hibernate3 spring mvc spring2 freemarker主流技术架构 · 懂html就能建站,提供最便利、合理的使用方式 · 强大、灵活的标签,用户自定义显示内容和显示方式 · 在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 · 完全生成全站静态页面,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录 JEECMS V3.0.1 beta完整更新列表: 1、新增会员中心模块; 3、页头会员登录改为CSI方式调用,不再受页面静态化影响; 4、修正前台投票报错问题; 5、修正后台投票项无法删除的问题; 6、修正后台栏目“是否允许顶、踩”控制功能无效的问题; 7、修正后台栏目“是否允许评论”控制功能无效的问题; 7、新增父级栏目模板; 8、修正副栏目文章前台无法显示的问题; 9、新增是否开启栏目静态化功能; 10、新增自定义栏目访问路径功能; 11、修改某些有可能和数据库保留字相冲突的字段; 12、修正栏目页静态化后翻页问题; 13、新增后台登录、会员登录、评论时的验证码; 14、修正后台管理员权限控制问题; 15、站点管理修正。去掉一些没有的字段,加上一些有的字段; 16、增加首页访问地址,允许/index.jhtml的访问路径; 17、修正信息提示页无法自动跳转问题 18、增加审核后文章修改开关 19、修正上一篇下一篇读出未审核文章的问题; 20、修正firefox浏览器中swfupload无法上传的问题; 21、增加栏目翻页标签 22、修正文章删除后TAG相关文章数量统计问题; 23、修正敏感词控制无效的问题 24、修正发布多媒体视频文件无效的问题; 25、新增管理员管理的细微权限验证,低级别管理员不能管理高级别管理员 26、新增管理员username、email的服务器端验证; 27、新增图片栏目模型及图片集效果;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值