freemarker 的ObjectWrapper Settings

freemarker 的ObjectWrapper Settings

关于 struts2 和freemarker合作来处理 map 类型的情况:


struts2 官方如下说:

Once you get familiar with FreeMarker, you will find certain subtletieswith it that may become frustrating. The most common thing you’ll likely run in to is the BeansWrapper provided by FreeMarker. If you don’t know what this is, don’t worry. However, if you do, know this:

The StrutsBeanWrapper extends the default FreeMarker BeansWrapper and provides almost no change in functionality, except for how it handles maps. Normally, FreeMarker has two modes of operation: either support for friendly map built-ins (?keys, ?values, etc) but only support for String keys; OR no special built-in support (ie: ?keys returns the methods on the map instead of the keys) but support for String and non-String keys alike. Struts provides an alternative implementation that gives us the best of both worlds.

It is possible that this special behavior may be confusing or can cause problems. Therefore, you can set the struts.freemarker.wrapper.altMap property in struts.properties to false, allowing the normal BeansWrapper logic to take place instead.

这里大致的意思就是,freemarker关于map的处理方式有两种,都是 使用freemarker内建的map?keys

我以前只是使用map?keys返回 这个map当中所有的key的列表,

struts提供了<constant name=”struts.freemarker.wrapper.altMap” value=”false”/> 参数供我们设置:

当值为true的时候,map?keys返回 map中key的列表 不(这时候map的key只能是String类型的)。当值设置为fase的时候,map?keys返回的是map这个类的所有方法和内容,例如map?keys?size返回22,因为map有22个方法。也可以使用

此时(map的key可以是string或者不是string类型的)

转载于:https://my.oschina.net/mam/blog/206141

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109897.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 英文翻译插件介绍_好用的翻译插件

    英文翻译插件介绍_好用的翻译插件明确需求开发一款插件最先要考虑的当然是它要实现什么功能了。比如我想做的是varname-go-die主要功能就是让开发者有时候遇到起变量名但是不知道英文怎么拼时,不需要切换到翻译软件去查找再copy

    2022年8月1日
    6
  • win10专业工作站版激活码_通用破解码

    win10专业工作站版激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    191
  • java容器类—概述

    java容器类—概述

    2022年2月6日
    73
  • 【转】Asp.NetMve移除HTTP Header中服務器信息Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By:ASP.NET…

    【转】Asp.NetMve移除HTTP Header中服務器信息Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By:ASP.NET…默認情況下Chrome中截獲的HTTPHeader信息:Cache-Control:private,s-maxage=0Content-Encoding:gzipContent-Length:1184Content-Type:text/html;charset=utf-8Date:Sun,08Oct201705:01:37GMTServer:Micros…

    2022年9月29日
    0
  • 二维数组和指针_二维数组与指针

    二维数组和指针_二维数组与指针二维数组和指针⑴用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维数组元

    2025年7月22日
    1
  • 第二届全国大学生网络安全精英赛初赛错题笔记

    第二届全国大学生网络安全精英赛初赛错题笔记(一)1.通信保密阶段主要威胁:搭线窃听和密码分析主要措施:数据加密保护机密性和完整性开始标志:香农的《保密系统的信息理论》2.信息安全的阶段四个阶段:通信安全、计算机安全、信息安全、信息保障3.信息系统安全保障蕴含:生命周期、保障要素、安全特征4.完整性:确保信息在存储、使用、传输的过程中不会被非授权按用户篡改,同时还要防止授权用户对信息进行不恰当篡改,保持信息内外部表示的一致性国际标准化组织:IOS/OSI提供了五种安全服务:以及八类安全机制。五类安全服务:认证(鉴别)服

    2022年5月25日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号