jeecms网站维护,遇到了直接通过链接的方式访问静态页面,jeecms官网也做了详细的解答,但是没有得到满意的结果。但是通过自己的深入研究以及别人的帮助,发现了一个很好的解决方法。

首先说明一下jeecms网站的访问特点,例如这个链接:http://127.0.0.1:8080/news/3567.jhtml

前面为ip地址:127.0.0.1

端口号:8080

栏目访问路径:news

文章id:3567

访问后缀:.jhtml

jeecms项目的web.xml对访问的形式做了过滤,后台有3个过滤器,如下

<filter>
<filter-name>processTime</filter-name>
<filter-class>com.jeecms.common.web.ProcessTimeFilter</filter-class>
</filter>
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>osivFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
          这里分别为时间的处理,字符编码的处理以及hibernate的session的处理,这些跟访问的链接没有什么关系。
          访问静态的html页面,在web.xml中可以找到对应servlet的代码,如下

<servlet-mapping>
<servlet-name>JeeCmsFront</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
         这样可以找到对应的文件,其实就是jeecms-servlet-front.xml
<servlet>
<servlet-name>JeeCmsFront</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/jeecms-servlet-front.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
         在jeecms-servlet-front.xml中没有找到对前台访问链接的过滤对应的类,但是在jeecms-servlet-front.xml中可以找到这个文件,其实就是jeecms-servlet-front-action.xml文件,这个文件中包含了很多的控制层代码,重要的代码如下:
<bean id="dynamicAct" class="com.jeecms.cms.action.front.DynamicPageAct"/>

前面说了很多,重要的就是在DynamicPageAct类里面,前台访问的链接主要通过DynamicPageAct里面的dynamic处理,代码如下
/**
* 动态页入口
*/
@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) {
//连接后的第一个参数
if(paths[0].equals("xxx")){
//返回静态页的文件位置
return "xxx.html";
}
// 单页
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);
}
}
         这样就可以访问jeecms项目下的静态页了,如上代码可以通过http://127.0.0.1:8080/xxx.html访问到项目WebRoot下的xxx.html页面。访问其它的页面,可以修改一下上述代码。
还有另一种方式:在spring-mvc的配置文件中加入以下代码可以实现上述功能
<!-- 将springmvc不能处理的请求交给tomcat 处理-->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>

---------------------
作者:山边的微风
来源:CSDN
原文:https://blog.csdn.net/u012606318/article/details/53394764
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. LINQ to Entities 不支持 LINQ 表达式节点类型“ArrayIndex”
  2. java数据库连接池技术原理(浅析)
  3. POJ1385 计算多边形的重心
  4. NET映射导致的应用无法访问
  5. 通过telnet来实践HTTP协议。
  6. JSON字符串与JSON对象
  7. Javascript笔记--Objects
  8. 杂记 C中的volatile
  9. 一个python爬虫小程序
  10. CSV to XLSX (专用)
  11. Hive优化
  12. nginx url 重写 [转]
  13. 七、C# 接口
  14. 分割视图控制器(UISplitViewController) 改_masterColumnWidth 导致在 IOS 10中出现闪退
  15. Android 周报
  16. Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)
  17. Problem 2. number题解
  18. 启动tomcat报错com.sun.faces.config.ConfigureListener
  19. A1087. All Roads Lead to Rome
  20. zoj 3430 Detect the Virus(AC自己主动机)

热门文章

  1. css3 ---1 基本的选择器
  2. day3-编码、文件、集合、函数、递归
  3. 廖雪峰Java15JDBC编程-3JDBC接口-2JDBC查询
  4. 转:Linux 文件IO理解
  5. CF 1281B Azamon Web Services
  6. PAT甲级——A1104 Sum of Number Segments
  7. Python编程基础环境安装
  8. HLog工作原理
  9. DBUtils(DataSourceUtils提供数据源)
  10. vim 插入行号