这几天一直在研究怎么实现Freemarker的国际化问题,在网上找了很多的实现,有在生成模板时通过Java代码来加载资源文件的、有使用Spring标签的,但是这些用起来,都感觉不顺手,毕竟在使用Freemarker之前,一直使用的是JSP,而在JSP中使用的最多的标签,还是JSTL,所以又查了一些资料,将JSTL集成进了Freemarker当中。
下面对这三种方式,分别介绍:
1、使用Java代码加载资源文件:
ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle("ApplicationResources"); ResourceBundleModel rsbm = new ResourceBundleModel(RESOURCE_BUNDLE, new BeansWrapper()); fmModel.put("bundle", rsbm);
通过上面的代码,将资源文件直接SET到传入模板的Map中,在模板中,通过下面的方式进行资源文件的国际化的调用:
${ bundle("webapp.name") }
2、通过使用Spring标签:
<#import "./commons/spring.ftl" as spring />
上面的代码,在模板代码中,引用入了Spring标签文件,这样就可以在模板文件中使用Spring的标签来进行国际化的操作了。在模板文件中使用下面的代码来进行国际化:
<@spring.message "webapp.name" />
而Spring标签的定义文件,在org.springframework.web.servlet包下的org\springframework\web\servlet\view\freemarker目录中,将其复制到你的工作目录,便可使用。
3、使用JSTL标签:
<#assign fmt=JspTaglibs["http://java.sun.com/jsp/jstl/fmt"] />
通过上面的代码,将JSTL标签引入到模板中,之后便可像在JSP中一样,来使用JSTL标签了。当然,写法要按照Freemarker的写法。如下:
<@fmt.message key="webapp.name" />
同样,要使用其他的JSTL标签,也使用同样的方式进行引用便可,下面是Core和FMT的引入例子:
<#assign c=JspTaglibs["http://java.sun.com/jsp/jstl/core"] /> <#assign fmt=JspTaglibs["http://java.sun.com/jsp/jstl/fmt"] />
相关推荐
JSTL(JavaServer Pages Standard Tag Library)即JavaServer页面的标准标签...这样才能够正确地使用JSTL提供的标签功能。JSTL标签库在JSP开发中非常实用,可以大大简化JSP页面的代码,提高开发效率和页面的可维护性。
而由于Spring MVC推荐使用POJO(Plain Old Java Object)和模板引擎(如Thymeleaf、Freemarker)来替代JSP,因此在现代Spring应用中,JSTL的使用逐渐减少,但在一些老项目或教学环境中仍然常见。 总的来说,理解并...
同时,它能够与Java的自定义标签库(如JSTL)配合,提供更丰富的功能,如国际化、日期时间处理等。 7. 安全特性 Freemarker提供了安全模式,可以在不信任用户输入的情况下防止潜在的XSS攻击。通过设置安全策略,...
- 使用JSTL时,确保你的Web容器(如Tomcat)支持JSP 2.0及以上版本,因为JSTL是在JSP 2.0中引入的。 - 要注意不同版本的JSTL可能与不同版本的Servlet和JSP规范存在兼容性问题,选择合适的版本是必要的。 - 在某些...
JSTL(JavaServer Pages ...不过要注意,虽然JSTL能够简化JSP,但在现代Web开发框架如Spring MVC、Struts2等中,视图层通常使用更先进的模板技术,如Thymeleaf或FreeMarker,以提供更强的模板功能和更好的分离关注点。
- **日期**:FreeMarker提供了多种格式化日期的方法,如使用 `string` 函数来格式化日期值。 - **数字**:同样地,FreeMarker也支持格式化数字,以便更好地展示数据。 ##### 2. Struts 标签 - **概念**:虽然本书...
例如,可以使用FreeMarker生成定制化的用户邮件,根据用户信息动态填充邮件内容。 总之,FreeMarker是Java开发中一个强大的模板引擎,它帮助开发者将表现层与业务逻辑分离,提高了代码的可维护性和灵活性。了解并...
数字格式化在Freemarker中也非常简单,只需要使用`?number`操作符即可完成数字的格式化显示。 #### 条件判断与循环 **JSP:** ```jsp ${!empty articleList}"> ${articleList}"> ${item.id} ``` **Freemarker...
5. **国际化与本地化** - **i18n支持**: 通过资源包(Resource Bundle)提供多语言支持,使用`${msg.key}` 获取对应语言的字符串。 6. **缓存与性能优化** - **模板缓存**: Freemarker可配置缓存机制,提高模板...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x>y)> ...
FreeMarker可以完全替代JSP,避免了JSP的EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)的复杂性,使视图更加简洁,更专注于展示逻辑。 在`testFreeMakerJsp`这个文件夹中,我们可能看到以下...
- **Action类改造**: 将原本在JSP中使用的EL表达式和JSTL标签替换为Freemarker语法。 - **创建Freemarker模板**: 设计并创建与Action相对应的Freemarker模板文件(.ftl),放置在指定的模板目录下。 - **配置结果...
它包含多个核心标签集,如fmt(格式化标签)、fn(函数标签)、sql(SQL标签)、xml(XML处理标签)等,使开发者能够更方便地处理日期、国际化、数组和集合操作,以及执行数据库查询等任务。 3. **Spring**:Spring...
spring mvc 3.2 + mybatis3.2 + jsp + jstl + jquery + OSCache + freeMarker + mysql 用户登陆用统一的认证登陆接口:shiro; 前台用freeMarker 模板,还有 jsp!
它包括了几个核心标签集,如core、fmt、fn、sql和xml,提供了处理常见任务的功能,如迭代、条件判断、国际化和XML处理等。使用JSTL可以减少Java代码在JSP页面中的使用,提高代码的可读性和维护性。例如,`...
在分页场景下,JSTL的`fmt:formatNumber`标签可以用于格式化页码,`c:forEach`标签可以遍历并显示分页后的数据。同时,`c:url`和`c:param`标签则可以用来构造带有分页参数的URL,实现页面间的跳转。 分页是Web应用...
Zblog a java blog 核心功能 文章/页面发布、分类、统计阅读次数。...静态化 FreeMarker 视图模板 Jsp/Jstl/JspTaglib 其它 Jsoup(xss过滤)、fastjson、IKAnalyzer 前端 jQuery js框架 Bootstrap 后台
静态化 FreeMarker 视图模板 Jsp/Jstl/JspTaglib 其它 Jsoup(xss过滤)、fastjson、IKAnalyzer 前端 jQuery js框架 Bootstrap 后台界面 UEditor/EpicEditor 编辑器 WebUploader 文件上传 ...
例如,对于JSP,我们可以使用InternalResourceViewResolver,而对于FreeMarker,我们可以配置FreeMarkerViewResolver。视图解析器会根据返回的逻辑视图名查找对应的物理视图路径。 **2. FreeMarker模板引擎** ...
这是一个基于Java技术栈的Web应用开发组合,...6. 创建JSP或Freemarker模板,使用JSTL标签来展示数据。 这个组合为开发者提供了一个高效且易于维护的Web应用开发环境,可以快速构建复杂的业务逻辑并处理数据库操作。