`
allbin1983
  • 浏览: 36008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Simpleframework组件与FreeMarker 整合例子

阅读更多

Simpleframework是基于后处理后处理模式技术实现的Web应用级开源框架。采用过滤器工作机制和申明式组件元数据定义,所以备整装零用的应 用模式,不仅可以支持Web应用的全程开发装,也可以在其他框架资源和应用的基础上仅引用其部分组件,本例介绍通过FreeMarker代替jsp做页面 展示,并在FreeMarker模板文件输出Simpleframework的树组件。

FreeMarker是开源的模板框架。对于它的介绍网上已经很多了。详情可参考
主页:http://www.freemarker.org/
现在我们就开始FreeMarker版的Hello World并实现输出Simpleframework树组件。
1.去这里下载 最新的FreeMarker.我下载的是Download freemarker-2.3.16
2.解压你下载的freemarker-2.3.16。
3.新建一web工程。我是Eclipse下做的。把freemarker-2.3.16/lib目录下的
jar文件复制到你建的web工程的lib目录下。
4.在WEB-INF目录下建一文件夹templates,然后在这个文件夹里面新建一个模板文件test.ftl

<html>

<meta http - equiv ="Content-Type" content="text/ html ; charset = gbk " />

<head>

  <title>你的自定义模板</title>

</head>

 <body>

      <h1> freemarker 输出的内容<h1> 

      ${message}

      :<font color=red>${ username }</font>

       <h1> sSimple 输出的内容<h1><br> 

   <table>

    <tr>

       <td width="50%" valign ="top">

       <div> 可以拖动的普通树 </div>

       <div id="demoTree1" style="padding: 8px; border: 5px solid # ddd ;"> </div>

       </td>

       <td width="50%" valign ="top">

       <div> 动态装载的树,可以多选 </div>

       <div id="demoTree2" style="padding: 8px; border: 5px solid # ddd ;"> </div>

       </td>

    </tr>

  </table>   

 </body>

</html>

5.建一个HelloFreeMarkerServlet:

packagedemo;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.HashMap;

importjava.util.Map;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

 

importfreemarker.template.Configuration;

importfreemarker.template.Template;

importfreemarker.template.TemplateException;

 

@SuppressWarnings("serial")

publicclassHelloFreeMarkerServlet extendsHttpServlet

{

    privateConfiguration cfg= null;

 

    @Override

    publicvoidinit() throwsServletException

    {

        // FreeMarker程序入口点

        cfg= newConfiguration();

        // 初始化 Servlet 上下文(第二参数为ServletContext的相对路径,null代表当前网站根路径,相对路径)

        cfg.setServletContextForTemplateLoading(this.getServletContext(), null);      

    }

    @SuppressWarnings("unchecked")

    @Override

    protectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp)

            throwsServletException, IOException

    {

        // 模板文件会根据key,读取value

        Map root = new HashMap ();

        root.put("message", "hello!");

        root.put("username", "SSimpleframe and freemarker lover.");

        Template t = cfg.getTemplate("/templates/test.ftl");

        resp.setCharacterEncoding("utf-8");

        PrintWriter out = resp.getWriter();

        try

        {

            t.process(root, out);

        } catch(TemplateException e)

        {

            e.printStackTrace();

        }

    }

 

    @Override

    protectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp)

            throwsServletException, IOException

    {

        this.doPost(req, resp);

    }

 

}

 

6.web.xml中的相应配置:

 

<?xmlversion="1.0" encoding="UTF-8"?>

<web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    id="WebApp_ID" version="2.5">

    <display-name> Simpleframework </display-name>

    <welcome-file-list>

       <welcome-file>index.html</welcome-file>

       <welcome-file>index.htm</welcome-file>

       <welcome-file>index.jsp</welcome-file>

       <welcome-file>default.html</welcome-file>

       <welcome-file>default.htm</welcome-file>

       <welcome-file>default.jsp</welcome-file>

    </welcome-file-list>

 

    <servlet>

        <servlet-name>testServlet</servlet-name>

        <servlet-class>demo.HelloFreeMarkerServlet</servlet-class>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>testServlet</servlet-name>

        <url-pattern>/hello.do</url-pattern>

    </servlet-mapping>

 

    <filter>

       <filter-name>actionFilter</filter-name>

        <filter-class>net.Simpleframework.web.page.PageFilter</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>actionFilter</filter-name>

       <url-pattern>*. jsp </url-pattern>

    </filter-mapping>  

    <filter-mapping>

       <filter-name>actionFilter</filter-name>

       <url-pattern>*.do</url-pattern>

    </filter-mapping>

    <listener>

    <listener-class>net.Simpleframework.web.page.PageEventAdapter</listener-class>

    </listener>

</web-app>

 

7. 申明组件元数据定义,需要对应于拦截的hello, hello.xml 文件如下:

 

<?xmlversion="1.0" encoding="UTF-8"?>

<pagexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:noNamespaceSchemaLocation="/xsd/default/sSimple.xsd">

    <responseCharacterEncoding> gbk </responseCharacterEncoding>

  <components>

    <treename="demoTree1" containerId="demoTree1" handleClass="net.Simpleframework.example.MyTree"

      width="240">

      <treenodetext="Root" acceptdrop="true">

        <treenodetext="Node1" draggable="true" acceptdrop="true">

          <jsDblclickCallback>alert('Node1');</jsDblclickCallback>

        </treenode>

        <treenodetext="Node2" draggable="true" acceptdrop="true">

          <treenodetext="Node2_1" draggable="true" acceptdrop="true">

            <jsDblclickCallback>alert('Node2_1');</jsDblclickCallback>

          </treenode>

          <treenodetext="Node2_2" draggable="true" acceptdrop="true">

          </treenode>

          <treenodetext="Node2_3" draggable="true" acceptdrop="true">

          </treenode>

        </treenode>

        <treenodetext="Node3" draggable="true" acceptdrop="true">

        </treenode>

        <treenodetext="Node4" draggable="true" acceptdrop="true">

        </treenode>

      </treenode>

    </tree>

 

    <treename="demoTree2" containerId="demoTree2" checkboxes="true"

      checkboxesThreeState="true" dynamicLoading="true" width="240">

      <treenodetext="北京市"/>

      <treenodetext="上海市"/>

       ***

    </tree>

  </components>

</page>

 

8.启动浏览器访问: http://localhost:8080/demo/hello.do


您会看到:

 

完整的工程 点击下载

 

分享到:
评论
2 楼 allbin1983 2010-12-15  
这是为了发到论坛上,操作失误。
1 楼 kkqqcom 2010-12-15  
<div class="quote_title">allbin1983 写道</div>
<div class="quote_div">
<div class="c">
<p align="left">Simpleframework是基于后处理后处理模式技术实现的Web应用级开源框架。采用过滤器工作机制和申明式组件元数据定义,所以备整装零用的应用模式,不仅可以支持Web应用的全程开发装,也可以在其他框架资源和应用的基础上仅引用其部分组件,本例介绍通过FreeMarker代替jsp做页面展示,并在FreeMarker模板文件输出Simpleframework的树组件。</p>
<p align="left">FreeMarker是开源的模板框架。对于它的介绍网上已经很多了。详情可参考<br>主页:<a href="http://www.freemarker.org/">http://www.freemarker.org/</a><br>现在我们就开始FreeMarker版的Hello World并实现输出Simpleframework树组件。<br>1.去<a href="http://www.freemarker.org/freemarkerdownload.html">这里</a>下载 最新的FreeMarker.我下载的是Download freemarker-2.3.16<br>2.解压你下载的freemarker-2.3.16。<br>3.新建一web工程。我是Eclipse下做的。把freemarker-2.3.16/lib目录下的<br>jar文件复制到你建的web工程的lib目录下。<br>4.在WEB-INF目录下建一文件夹templates,然后在这个文件夹里面新建一个模板文件test.ftl</p>
<p align="left"><span style="text-decoration: underline;">&lt;html&gt; </span></p>
<p align="left">&lt;meta <span style="text-decoration: underline;">http </span>- <span style="text-decoration: underline;">equiv </span>="Content-Type" content="text/ <span style="text-decoration: underline;">html </span>; <span style="text-decoration: underline;">charset </span>= <span style="text-decoration: underline;">gbk </span>" /&gt;</p>
<p align="left">&lt;head&gt;</p>
<p align="left">  &lt;title&gt;你的自定义模板&lt;/title&gt;</p>
<p align="left">&lt;/head&gt;</p>
<p align="left"> &lt;body&gt;</p>
<p align="left">      &lt;h1&gt; <span style="text-decoration: underline;">freemarker </span>输出的内容&lt;h1&gt; </p>
<p align="left">      ${message}</p>
<p align="left">      :&lt;font color=red&gt;${ <span style="text-decoration: underline;">username </span>}&lt;/font&gt;</p>
<p align="left">       &lt;h1&gt; sSimple 输出的内容&lt;h1&gt;&lt;br&gt; </p>
<p align="left">   &lt;table&gt;</p>
<p align="left">    &lt;tr&gt;</p>
<p align="left">       &lt;td width="50%" <span style="text-decoration: underline;">valign </span>="top"&gt;</p>
<p align="left">       <span style="text-decoration: underline;">&lt;div&gt; </span>可以拖动的普通树 <span style="text-decoration: underline;">&lt;/div&gt; </span></p>
<p align="left">       &lt;div id="demoTree1" style="padding: 8px; border: 5px solid # <span style="text-decoration: underline;">ddd </span>;"&gt; <span style="text-decoration: underline;">&lt;/div&gt; </span></p>
<p align="left">       &lt;/td&gt;</p>
<p align="left">       &lt;td width="50%" <span style="text-decoration: underline;">valign </span>="top"&gt;</p>
<p align="left">       <span style="text-decoration: underline;">&lt;div&gt; </span>动态装载的树,可以多选 <span style="text-decoration: underline;">&lt;/div&gt; </span></p>
<p align="left">       &lt;div id="demoTree2" style="padding: 8px; border: 5px solid # <span style="text-decoration: underline;">ddd </span>;"&gt; <span style="text-decoration: underline;">&lt;/div&gt; </span></p>
<p align="left">       &lt;/td&gt;</p>
<p align="left">    &lt;/tr&gt;</p>
<p align="left">  &lt;/table&gt;   </p>
<p align="left"> &lt;/body&gt;</p>
<p align="left"><span style="text-decoration: underline;">&lt;/html&gt; </span></p>
<p align="left">5.建一个HelloFreeMarkerServlet:</p>
<p align="left"><strong>package</strong>demo;</p>
<p align="left"><strong>import</strong>java.io.IOException;</p>
<p align="left"><strong>import</strong>java.io.PrintWriter;</p>
<p align="left"><strong>import</strong>java.util.HashMap;</p>
<p align="left"><strong>import</strong>java.util.Map;</p>
<p align="left"><strong>import</strong>javax.servlet.ServletException;</p>
<p align="left"><strong>import</strong>javax.servlet.http.HttpServlet;</p>
<p align="left"><strong>import</strong>javax.servlet.http.HttpServletRequest;</p>
<p align="left"><strong>import</strong>javax.servlet.http.HttpServletResponse;</p>
<p align="left"> </p>
<p align="left"><strong>import</strong>freemarker.template.Configuration;</p>
<p align="left"><strong>import</strong>freemarker.template.Template;</p>
<p align="left"><strong>import</strong>freemarker.template.TemplateException;</p>
<p align="left"> </p>
<p align="left">@SuppressWarnings("serial")</p>
<p align="left"><strong>public</strong><strong>class</strong>HelloFreeMarkerServlet <strong>extends</strong>HttpServlet</p>
<p align="left">{</p>
<p align="left">    <strong>private</strong>Configuration cfg= <strong>null</strong>;</p>
<p align="left"> </p>
<p align="left">    @Override</p>
<p align="left">    <strong>public</strong><strong>void</strong>init() <strong>throws</strong>ServletException</p>
<p align="left">    {</p>
<p align="left">        // FreeMarker程序入口点</p>
<p align="left">        cfg= <strong>new</strong>Configuration();</p>
<p align="left">        // 初始化 <span style="text-decoration: underline;">Servlet </span>上下文(第二参数为ServletContext的相对路径,null代表当前网站根路径,相对路径)</p>
<p align="left">        cfg.setServletContextForTemplateLoading(<strong>this</strong>.getServletContext(), <strong>null</strong>);      </p>
<p align="left">    }</p>
<p align="left">    @SuppressWarnings("unchecked")</p>
<p align="left">    @Override</p>
<p align="left">    <strong>protected</strong><strong>void</strong>doPost(HttpServletRequest req, HttpServletResponse resp)</p>
<p align="left">            <strong>throws</strong>ServletException, IOException</p>
<p align="left">    {</p>
<p align="left">        // 模板文件会根据key,读取value</p>
<p align="left">        <span style="text-decoration: underline;">Map </span>root = <strong>new</strong> <span style="text-decoration: underline;">HashMap </span>();</p>
<p align="left">        root.put("message", "hello!");</p>
<p align="left">        root.put("username", "SSimpleframe and freemarker lover.");</p>
<p align="left">        Template t = cfg.getTemplate("/templates/test.ftl");</p>
<p align="left">        resp.setCharacterEncoding("utf-8");</p>
<p align="left">        PrintWriter out = resp.getWriter();</p>
<p align="left">        <strong>try</strong></p>
<p align="left">        {</p>
<p align="left">            t.process(root, out);</p>
<p align="left">        } <strong>catch</strong>(TemplateException e)</p>
<p align="left">        {</p>
<p align="left">            e.printStackTrace();</p>
<p align="left">        }</p>
<p align="left">    }</p>
<p align="left"> </p>
<p align="left">    @Override</p>
<p align="left">    <strong>protected</strong><strong>void</strong>doGet(HttpServletRequest req, HttpServletResponse resp)</p>
<p align="left">            <strong>throws</strong>ServletException, IOException</p>
<p align="left">    {</p>
<p align="left">        <strong>this</strong>.doPost(req, resp);</p>
<p align="left">    }</p>
<p align="left"> </p>
<p align="left">}</p>
<p align="left"> </p>
<p align="left">6.web.xml中的相应配置:</p>
<p align="left"> </p>
<p align="left">&lt;?xmlversion=<em>"1.0"</em> encoding=<em>"UTF-8"</em>?&gt;</p>
<p align="left">&lt;web-appxmlns:xsi=<em><span>"<a class="smarterwiki-linkify" href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"</span></em> xmlns=<em><span>"<a class="smarterwiki-linkify" href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a>"</span></em></p>
<p align="left">    xmlns:web=<em><span>"<a class="smarterwiki-linkify" href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a>"</span></em></p>
<p align="left">    xsi:schemaLocation=<em><span>"<a class="smarterwiki-linkify" href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a> <a class="smarterwiki-linkify" href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a>"</span></em></p>
<p align="left">    id=<em>"WebApp_ID"</em> version=<em>"2.5"</em>&gt;</p>
<p align="left">    &lt;display-name&gt; <span style="text-decoration: underline;">Simpleframework </span>&lt;/display-name&gt;</p>
<p align="left">    &lt;welcome-file-list&gt;</p>
<p align="left">       &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;</p>
<p align="left">       &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;</p>
<p align="left">       &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;</p>
<p align="left">       &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;</p>
<p align="left">       &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;</p>
<p align="left">       &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;</p>
<p align="left">    &lt;/welcome-file-list&gt;</p>
<p align="left"> </p>
<p align="left">    &lt;servlet&gt;</p>
<p align="left">        &lt;servlet-name&gt;testServlet&lt;/servlet-name&gt;</p>
<p align="left">        &lt;servlet-class&gt;demo.HelloFreeMarkerServlet&lt;/servlet-class&gt;</p>
<p align="left">    &lt;/servlet&gt;</p>
<p align="left"> </p>
<p align="left">    &lt;servlet-mapping&gt;</p>
<p align="left">        &lt;servlet-name&gt;testServlet&lt;/servlet-name&gt;</p>
<p align="left">        &lt;url-pattern&gt;/hello.do&lt;/url-pattern&gt;</p>
<p align="left">    &lt;/servlet-mapping&gt;</p>
<p align="left"> </p>
<p align="left">    &lt;filter&gt;</p>
<p align="left">       &lt;filter-name&gt;actionFilter&lt;/filter-name&gt;</p>
<p align="left">        &lt;filter-class&gt;net.Simpleframework.web.page.PageFilter&lt;/filter-class&gt;</p>
<p align="left">    &lt;/filter&gt;</p>
<p align="left">    &lt;filter-mapping&gt;</p>
<p align="left">       &lt;filter-name&gt;actionFilter&lt;/filter-name&gt;</p>
<p align="left">       &lt;url-pattern&gt;*. <span style="text-decoration: underline;">jsp </span>&lt;/url-pattern&gt;</p>
<p align="left">    &lt;/filter-mapping&gt;  </p>
<p align="left">    &lt;filter-mapping&gt;</p>
<p align="left">       &lt;filter-name&gt;actionFilter&lt;/filter-name&gt;</p>
<p align="left">       &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;</p>
<p align="left">    &lt;/filter-mapping&gt;</p>
<p align="left">    &lt;listener&gt;</p>
<p align="left">    &lt;listener-class&gt;net.Simpleframework.web.page.PageEventAdapter&lt;/listener-class&gt;</p>
<p align="left">    &lt;/listener&gt;</p>
<p align="left">&lt;/web-app&gt;</p>
<p align="left"> </p>
<p align="left">7. 申明组件元数据定义,需要对应于拦截的hello, hello.xml 文件如下:</p>
<p align="left"> </p>
<p align="left">&lt;?xmlversion=<em>"1.0"</em> encoding=<em>"UTF-8"</em>?&gt;</p>
<p align="left">&lt;pagexmlns:xsi=<em><span>"<a class="smarterwiki-linkify" href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"</span></em></p>
<p align="left">  xsi:noNamespaceSchemaLocation=<em>"/xsd/default/sSimple.xsd"</em>&gt;</p>
<p align="left">    &lt;responseCharacterEncoding&gt; <span style="text-decoration: underline;">gbk </span>&lt;/responseCharacterEncoding&gt;</p>
<p align="left">  &lt;components&gt;</p>
<p style="margin-left: 55pt;" align="left">    &lt;treename=<em>"demoTree1"</em> containerId=<em>"demoTree1"</em> handleClass=<em>"net.Simpleframework.example.MyTree"</em></p>
<p align="left">      width=<em>"240"</em>&gt;</p>
<p align="left">      &lt;treenodetext=<em>"Root"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">        &lt;treenodetext=<em>"Node1"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">          &lt;jsDblclickCallback&gt;alert('Node1');&lt;/jsDblclickCallback&gt;</p>
<p align="left">        &lt;/treenode&gt;</p>
<p align="left">        &lt;treenodetext=<em>"Node2"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">          &lt;treenodetext=<em>"Node2_1"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">            &lt;jsDblclickCallback&gt;alert('Node2_1');&lt;/jsDblclickCallback&gt;</p>
<p align="left">          &lt;/treenode&gt;</p>
<p align="left">          &lt;treenodetext=<em>"Node2_2"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">          &lt;/treenode&gt;</p>
<p align="left">          &lt;treenodetext=<em>"Node2_3"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">          &lt;/treenode&gt;</p>
<p align="left">        &lt;/treenode&gt;</p>
<p align="left">        &lt;treenodetext=<em>"Node3"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">        &lt;/treenode&gt;</p>
<p align="left">        &lt;treenodetext=<em>"Node4"</em> draggable=<em>"true"</em> acceptdrop=<em>"true"</em>&gt;</p>
<p align="left">        &lt;/treenode&gt;</p>
<p align="left">      &lt;/treenode&gt;</p>
<p align="left">    &lt;/tree&gt;</p>
<p align="left"> </p>
<p align="left">    &lt;treename=<em>"demoTree2"</em> containerId=<em>"demoTree2"</em> checkboxes=<em>"true"</em></p>
<p align="left">      checkboxesThreeState=<em>"true"</em> dynamicLoading=<em>"true"</em> width=<em>"240"</em>&gt;</p>
<p align="left">      &lt;treenodetext=<em>"</em><em>北京市</em><em>"</em>/&gt;</p>
<p align="left">      &lt;treenodetext=<em>"</em><em>上海市</em><em>"</em>/&gt;</p>
<p align="left">       ***</p>
<p align="left">    &lt;/tree&gt;</p>
<p align="left">  &lt;/components&gt;</p>
<p align="left">&lt;/page&gt;</p>
<p align="left"> </p>
<p align="left">8.启动浏览器访问: <span style="text-decoration: underline;"><span><a class="smarterwiki-linkify" href="http://localhost:8080/demo/hello.do">http://localhost:8080/demo/hello.do</a> </span></span></p>
<p align="left"><br>您会看到:</p>
<p><img style="padding: 1px; border: 1px solid #999999;" src="http://simpleframework.net/%24resource/default/filePager/jsp/dl.jsp?__file_beanId=1483841273_1967688702&amp;__file_Id=2653&amp;job=sys_account_normal" alt=""></p>
<p> </p>
<p>完整的工程 <span style="color: #ff0000;"><span style="font-size: 28px;"><a href="http://simpleframework.googlecode.com/files/Simple-FreeMarker.zip">点击下载</a></span></span></p>
</div>
<p> </p>
</div>
<p><br><a href="http://www.iteye.com/topic/842350">http://www.iteye.com/topic/842350</a></p>
<p><a href="http://www.iteye.com/topic/842348">http://www.iteye.com/topic/842348</a></p>
<p> lz重复发帖了。</p>

相关推荐

    Simple-FreeMarker.zip

    《简单整合:SimpleFramework与FreeMarker的工程应用》 在当今的软件开发中,模板引擎是一种常见的技术,它能够帮助开发者将静态的HTML内容与动态数据进行分离,从而提高代码的可读性和维护性。本篇文章将深入探讨...

    simpleframework 框架核心包 simple3.jar

    Simpleframework是基于后...不仅可以支持Web应用的全程开发装,也可以在其他框架资源和应用的基础上仅引用其部分组件,本例介绍通过FreeMarker代替jsp做页面展示,并在FreeMarker模板文件输出Simpleframework的树组件。

    SimpleFramework NoLua

    《SimpleFramework NoLua:Unity3D中的C# MVC框架与热更新实践》 SimpleFramework NoLua,是由ulua项目的作者推出的适用于Unity3D的游戏开发框架,特别针对C#编程语言进行了优化,旨在提供一个轻量级、高效且易于...

    uLua-SimpleFramework-UGUI带注解

    《uLua-SimpleFramework与UGUI结合的深度解析》 在Unity引擎的开发过程中,lua脚本语言的引入极大地提高了游戏开发的效率和灵活性。uLua作为Unity中的一个lua脚本解决方案,它允许开发者在Unity环境中无缝地使用lua...

    SimpleFramework_v0.2.7注解 - 完整版

    #### 四、SimpleFramework的核心组件 SimpleFramework的核心组件包括: 1. **底层库**: - **Luajit + luawrap.c**:提供基本的Lua与C#之间的交互功能。后期版本为了满足不同需求,扩展了更多功能,例如protobuf-...

    SimpleFramework_UGUI.zip

    【标题】"SimpleFramework_UGUI.zip" 是一个与Unity3D游戏开发相关的资源包,主要涉及使用UGUI(Unity的图形用户界面系统)和uLua(Unity中的Lua脚本支持)来构建游戏框架。这个压缩包包含了项目的核心组件、编辑器...

    SimpleFramework_UGUI-0.4.1.zip

    这可能包括以下核心组件: 1. **资源下载管理器**:负责从服务器下载最新的lua脚本文件,确保数据的完整性和安全性。 2. **文件系统交互**:在本地存储下载的lua脚本,可能采用了特定的文件结构来区分不同版本的...

    simpleframework:简单框架

    简单框架 Simple的目标是为服务器端Java带来简单性,可伸缩性和性能。... Simple提供了真正的异步服务模型,使用内部透明的监视系统来驱动请求完成。 这使得Simple在多层环境中的性能大大优于大多数基于Java的服务器,...

    SimpleFrameWork

    简易MVC-API-PHP框架此框架为自己整理系统的练习作品,切勿将之应用在实务上,应用在实务上的框架上请选择Laravel 5.1等框架。所使用的package Laravel - ORM("illuminate/database": "5.1.8") Laravel - Pagination...

    week2_simpleFramework

    week2_simpleFramework 这是一个简单的 REST 框架资源: 学校公司服务器在端口 3000 上运行方法: POST - 根据 url 和输入的 JSON 数据在学校或公司中创建一个新文件 PUT - 根据 url 和输入的 JSON 数据重写文件的...

    sf_webhook:使用 simpleframework http 服务器的 github webhook

    sf_webhook 使用 simpleframework http 服务器的 github webhook

    simpleframework:自己实现的IOC,AOP,MVC,ORM

    启动方式 数据库配置示例 ...user = root password = root ...srcPath = E:\\mooc\\手写Spring源码\\simpleframework\\src\\main\\java ##指定自己的查询类,必须继承自Query queryClass = com.framework.orm.core.i

    基于go语言的简易框架.zip

    基于go语言的简易框架简单框架使用说明創建router := simpleframework.Default()`GET方法,用文本输出的工具方法验证router.GET("/get/h/i/hello", func(c *simpleframework.Context) error { return c.String(200, ...

    基于uLua跟NGUI的资源打包+代码热更新的游戏框架源码

    《基于uLua与NGUI的资源打包与代码热更新游戏框架源码解析》 在现代游戏开发中,高效地管理资源以及实现代码热更新对于提升用户体验和降低维护成本至关重要。本资源包“SimpleFramework_v0.1.0”提供了一个基于...

    详解Android XML中引用自定义内部类view的四个why

    在XML布局文件中,我们使用`&lt;view&gt;`标签来表示自定义视图,而不是通常的视图组件(如`&lt;Button&gt;`或`&lt;TextView&gt;`)。这是因为自定义视图本质上是一个继承自`View`或其子类的类,所以我们用`&lt;view&gt;`来表示它是自定义的...

    SpriteMVC:Unity lua热更新mvc框架

    作为国内最初版本的ulua和SimpleFrameWork的用户与追随者,由衷感谢ulua / tolua以及LuaFramework的创建者与开发者为国产游戏热更新方案做出的贡献,同时对slua与xlua的作者表示真诚的感谢! (都是牛人,没有引战的...

    ext4.0动态加载示例

    在"simpleframework"这个压缩包子文件中,我们可以推测它包含了一个简洁的框架或示例,用于演示如何在Ext JS 4.0中实现上述功能。可能包含的文件有: 1. `app.js`:这是主JavaScript文件,包含了应用的核心配置和...

    Android开发-Retrofit-AndroidStudio(四)simplexml解析XML_免积分

    在本教程中,我们将深入探讨如何在Android Studio项目中使用Retrofit与simplexml库一起解析XML数据。简单XML库(Simple XML)是Java中一个轻量级、高效的XML序列化和反序列化库,非常适合处理XML格式的数据。 首先...

    simple-xml jar包

    本篇文章将深入探讨Simple-XML库,包括其核心特性、安装方法、使用示例以及与其他XML解析库的对比。 ### 1. Simple-XML简介 Simple-XML库是专门为简化XML解析和序列化而设计的。它以其简洁的API和强大的注解功能而...

    spring源码-资料

    Spring框架是Java开发领域中的一个核心组件,以其高度的模块化、灵活性和强大的功能闻名。在这个“spring源码-资料”中,我们主要探讨的是Spring Framework 5.2.0.RELEASE版本的源代码,这是一个对开发者深入理解...

Global site tag (gtag.js) - Google Analytics