zoukankan      html  css  js  c++  java
  • jeecms初体验D2freemarker篇

      本文是拿jeecms2.4.2这一版本来介绍struts2和freemarker之间的整合以及jeecms的二次开发(由于是基于jeecms这一系统,可能公司开发人员对一些代码有所改动)

     回顾:

      struts2的工作流程:

      1. 请求

      2. 核心控制器FilterDispatcher将分析请求,通过struts.xml配置文件访问哪个Action

      3. 在访问Action之前请求会经过 拦截器(Intercepter)自动对请求进行拦截(比如说:验证、url分析实现权限控制、防止恶意攻击等等)

      4. 执行Action中的方法(默认是execute)

      5. 根据struts.xml配置文件返回到指定的视图资源。

     jeecms配置分析:

      框架最先加载struts.xml 随后按照配置文件中的配置依次对文件进行加载,其中struts-default.xml是定义了一些struts2中核心的bean和拦截器栈。这些个拦截器是以key-value的形式存在,name指的是拦截器的名字,value是拦截器实现类。

      另外在看对bean的配置时

    <bean class="org.apache.struts2.views.freemarker.FreemarkerManager" name="struts" />
    
    <bean type="org.apache.struts2.components.template.TemplateEngine" name="ftl" class="org.apache.struts2.components.template.FreemarkerTemplateEngine" />

    就是对struts和freemarker的整合,然后再对整个站action结果集的配置

    <result-types>
    <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
    <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult"/>
    <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" default="true"/>
    <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
    <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
    <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
    <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
    <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
    <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
    <!--自定义result-type-->
    <result-type name="json" class="com.googlecode.jsonplugin.JSONResult">
    <param name="root">jsonRoot</param>
    </result-type>    
    <result-type name="pageCache" class="com.fcms.cms.web.PageCacheResult" />
    </result-types>
  • 相关阅读:
    ios代码大全
    MYSQL数据库之如何在已经建立好表之后重构数据表
    关于cookie在一个页面设置但是在另外一个页面获取不到的原因
    cookie的那点事儿
    关于a标签不能调用js方法的小细节,你注意到了么?
    关于mysql预处理技术的一点小心得
    关于delete使用limit的一些注意事项
    DP1 等分连续1-N个数的划分种数
    Spring 编程式事务和声明式事务管理
    java https client信任所有证书
  • 原文地址:https://www.cnblogs.com/xmaomao/p/3003677.html
Copyright © 2011-2022 走看看