-
freemarker自定义标签如何在html中直接引用5
由于功能要求需要将jsp文件改成html,但是html无法使用各种标签(例如struts标签),实现动态加载数据库的内容。所以这段时间一直在研究freemarker的自定义标签,要如何配置,才能实现类似jsp可以引用struts的标签一样直接使用的功能?如果不需要加入引用的部分更好?
问题补充:我看过jeecms,这里面全是html页面而且它的标签可以直接引用,它里面是如何实现的?2014年5月14日 09:49
3个答案 按时间排序 按投票排序
-
看看这个文档,使用freemarker自定义宏
http://hi.baidu.com/zhu557/item/528ce2e56f334c216dabb8842014年5月14日 16:18
-
在页面中加入下列一行即可: <#global hm=JspTaglibs["/WEB-INF/hymake.tld"]> <#global ww=JspTaglibs["/WEB-INF/webwork.tld"]> 那么用到的话,写成跟宏类似就行,以@开头: <@ww.select label="aa" name="bb" list="{'en_US','zh_CN'}"/>
2014年5月14日 10:34
-
jeecms分为admin与front两个部分,对于admin后台部分的freemarker运用,是直接在jeecms-servlet-admin.xml里有配置
<bean id="freemarkerViewResolver" class="com.jeecms.common.web.springmvc.RichFreeMarkerViewResolver"> <property name="prefix" value="/jeecms_sys/"/> <property name="suffix" value=".html"/> <property name="contentType" value="text/html; charset=UTF-8"/> <property name="exposeRequestAttributes" value="false"/> <property name="exposeSessionAttributes" value="false"/> <property name="exposeSpringMacroHelpers" value="true"/> </bean>
这里有配置freemark路径的前缀后缀
对于front前台部分在jeecms-servlet-front.xml里面可能并看不到类似配置,但你要看后台代码可以看到,它也是返回.html后缀的模板路径名,如:@RequestMapping(value = "/ad.jspx") public String ad(Integer id, HttpServletRequest request, HttpServletResponse response, ModelMap model) { CmsSite site = CmsUtils.getSite(request); if (id != null) { CmsAdvertising ad = cmsAdvertisingMng.findById(id); model.addAttribute("ad", ad); } FrontUtils.frontData(request, model, site); return FrontUtils.getTplPath(request, site.getSolutionPath(), TPLDIR_CSI, TPL_AD); }
FrontUtils。getTplPath方法实现里面就是返回一个带.html后缀的路径public static String getTplPath(MessageSource messageSource, String lang, String solution, String dir, String name) { LocaleEditor localeEditor = new LocaleEditor(); localeEditor.setAsText(lang); Locale locale = (Locale) localeEditor.getValue(); return solution + "/" + dir + "/" + messageSource.getMessage(name, null, locale) + TPL_SUFFIX; }
其中的TPL_SUFFIX是在com.jeecms.cms.Constants类里有定义/** * 模板后缀 */ public static final String TPL_SUFFIX = ".html";
2014年5月14日 10:33
相关推荐
在实际开发中,我们可能会遇到自定义标签的需求,这是为了提高代码的可复用性和可读性。在Struts2中,可以通过实现`com.opensymphony.xwork2.util.ValueStackAware`接口创建自定义标签,让标签能够访问值栈中的数据...
在JSP(JavaServer Pages)中,自定义标签是通过TLD(Tag Library Descriptor)文件来定义的,它描述了标签的行为、属性、变量等信息。TLD文件通常以`.tld`为扩展名,是XML格式的,用于告诉JSP引擎如何处理特定的...
5. `说明.txt`: 这个文件可能包含了关于如何使用这些自定义标签的详细说明,包括如何在FreeMarker模板中引用它们以及它们的功能。 要扩展Struts2的FreeMarker标签库,你需要遵循以下步骤: 1. **创建模型类**: 定义...
FreeMarker是一个强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。它与Java语言紧密集成,允许开发者通过模板语言(Template Language)来分离应用程序的...
- **数据模型**:Freemarker模板与应用程序的数据模型进行绑定,模型中的数据可以在模板中被引用和展示。 - **分离关注点**:Freemarker遵循MVC设计模式,负责视图部分,将业务逻辑和表现层分开,使代码更易于维护...
- 探索Freemarker的高级特性,如宏和自定义标签,它们可以扩展模板语言的功能。 通过"freemarker-test"这个压缩包文件,你可以实践以上知识,创建和运行Freemarker模板,逐步熟悉其语法和特性。同时,结合实际项目...
4. **自定义标签支持**:除了内置的对象外,FreeMarker还允许用户自定义标签,从而扩展模板语言的功能。这为高级用户提供了一种非常灵活的方式来扩展FreeMarker的功能。 5. **多语言支持**:除了提供中文版本的手册...
4. **自定义函数和标签**:Freemarker支持自定义函数(`TemplateMethodModelEx`)和标签库(`TemplateDirectiveModel`),你可以扩展Freemarker的功能,使其更符合项目需求。 三、模板语法 Freemarker的模板语法...
2. **数据模型**:如何在Java代码中创建数据模型并传递给FreeMarker,以及如何在模板中引用这些数据。 3. **模板的生命周期**:从加载、解析、合并数据到生成输出的过程。 4. **模板缓存**:如何配置缓存策略,提高...
其中,`#` 符号用于区分标准的 HTML 标签和 Freemarker 的自定义标签。需要注意的是,当指令是用户自定义而非系统内置时,应将 `#` 替换为 `@`。此外,在使用 FTL 标签时,应遵循正确的嵌套规则,类似于 XML 标签的...
Freemarker是一款强大的模板引擎,常用于Web应用中的视图层渲染,比如Java Web开发。它的设计理念是将数据模型和展现逻辑分离,让开发者专注于HTML或者其他格式的模板设计,而不用关心具体的业务逻辑。这份...
同时,它能够与Java的自定义标签库(如JSTL)配合,提供更丰富的功能,如国际化、日期时间处理等。 7. 安全特性 Freemarker提供了安全模式,可以在不信任用户输入的情况下防止潜在的XSS攻击。通过设置安全策略,...
以下是一个简单的HTML模板示例,展示了如何使用FreeMarker指令(由`${...}`包裹)来引用数据模型中的数据: ```html <html> <title>Welcome! <h1>Welcome ${user}! <p>Our latest product: ${...
10. **自定义标签(Custom Tags)**:如果需要集成其他框架(如Spring MVC)的标签,可以创建自定义标签,扩展Freemarker的功能。 在“freemarker学习例子”中,你可能看到如何设置数据模型、创建简单的模板、使用...
- 在Freemarker模板文件中,可以使用Struts2标签库,如`s:property`来显示Action中的属性值。例如,如果LoginAction中有username属性,可以这样写:`<s:property value="username" />`。 7. **运行和调试**: - ...
Freemarker是一款强大的模板引擎,常用于Web应用中的动态页面生成。它是一种声明式编程模型,使得开发者可以专注于数据的处理,而将视图层的展示逻辑交给Freemarker模板来处理。本手册针对的是Freemarker的2.3.23...
3. 自定义标签库(Taglib):集成自定义功能,扩展Freemarker能力。 4. 配置管理:通过`freemarker.template.Configuration`类设置模板加载、缓存等策略。 六、最佳实践 1. 保持模板简洁,避免复杂的业务逻辑。 2. ...
FreeMarker是一款强大的、开源的模板引擎,主要用于生成HTML或者其他类型的文本输出,特别是在Web应用开发中。它是Java平台上的一个轻量级工具,可以与Servlet容器、MVC框架(如Spring MVC)等配合使用,用于动态...