`
黑暗浪子
  • 浏览: 502709 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2讲义28

阅读更多

6.2  freemarker 视图技术使用介绍

freemarker velocity 一样也是一种可以替代 JSP 的视图技术。而且 Struts2 中对它的支持要比对 velocity 也强大的多。下面就对它进行介绍。

技术要点

本节代码说明 freemarker Struts2 中使用方式。

freemarker 基本语义和书写格式说明。

模板文件 ftl 介绍

Struts2 中如何使用 freemarker

演示代码

显示数据的 ftl 模板文件代码:

<!-------------------文件名:show.ftl------------->
<html>
    <head>
    <title>FreeMarker使用范例</title>
    <meta http-equiv="content-type" content="text/html; charset=GB2312"/>
    </head>
 
    <body>
       <h3 align="left">
            FreeMarker使用范例
        </h3>
       <h1>装修材料信息列表</h1>
       
        <table border>
        <tr align="center">
          <td>材料名</td>
          <td>材料价格(单位:元)</td>
          <td>材料库存量(单位:个)</td>
        </tr>
        <#list mList as Material>
              <tr align="center">
                  <td>${Material.material}</td>
                  <td>${Material.bid}</td>
                  <td>${Material.mount}</td>
             </tr>
        </#list>
       </table>
    </body>
</html>

 

Action 代码同 velocity 示例中 Action 代码,这里就不显示了。读者自行阅读。

配置文件对 Action 的配置内容:

<!-----------文件名:struts.xml----------->
………
<package name="C06.1" extends="struts-default">
                   <action name="velocity"
                            class="action.VelocityAction">
                            <result name="success" type="freemarker">/velocity/show.vm</result>
                   </action>
</package>

 

对支持中文字符的字符编码集设置也如 velocity 示例。示例效果显示如图 6.2

6.2  freemarker 显示效果图

代码解释

1 )本节示例也是将一些装修材料用 list 形式显示在页面上。只不过现在使用的是 freemarker 。它其实是将 JAVA 代码中定义好的类,在底层使用 map 类型显示在页面上。因此在 ftl 模板中看见的“ # ”标识除了表明控制转向之外,其他都是 map key 值,而每个 key 值对应的 value 就是 JAVA 中定义的类,这些类有可能是 JavaBean 也有可能像本示例中的材料列表一样是 list 和其他数据集合类。“ $ ”标识和 velocity 中“ $ ”标识类似是用来标识具体对象或变量。

2 freemarker 模板文件后缀名都是“ ftl ”结尾。它也可以在文件中定义各种各样的 html 标签和代码。不过它要调用 Struts2 的标签则调用方法要比 vm 文件调用 Struts2 标签要稍微复杂点。

首先在它的文件头部使用 assign 来导入 Struts2 的标签定义。代码如下:

<#assign s=JspTagLibs[“/WEB-INF/struts-tags.tld”]/>

 

另外在每次调用 Struts2 标签时候前面要加上“ @ ”。

3 )在 Struts2 中使用 freemarker 技术,首先要在项目中导入 freemarker jar 包。 struts.xml 文件中,同样笔者用黑体注明了 result 的返回类型必须是“ freemarker ”,这样才可以调用 ftl 模板文件。关于中文字符支持问题的解决方法也如笔者介绍 velocity 的小节中相同。

注意: ftl 文件中对英文字符的大小写是很敏感的,因此对某些对象和变量的定义时候,请读者注意大小写问题。

  • 大小: 37.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics