0 0

freemarker自定义标签如何在html中直接引用5

由于功能要求需要将jsp文件改成html,但是html无法使用各种标签(例如struts标签),实现动态加载数据库的内容。所以这段时间一直在研究freemarker的自定义标签,要如何配置,才能实现类似jsp可以引用struts的标签一样直接使用的功能?如果不需要加入引用的部分更好?

问题补充:我看过jeecms,这里面全是html页面而且它的标签可以直接引用,它里面是如何实现的?
2014年5月14日 09:49

3个答案 按时间排序 按投票排序

0 0

看看这个文档,使用freemarker自定义宏

http://hi.baidu.com/zhu557/item/528ce2e56f334c216dabb884

2014年5月14日 16:18
0 0

在页面中加入下列一行即可:

<#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
0 0

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、Spring、Freemarker自定义标签

    在实际开发中,我们可能会遇到自定义标签的需求,这是为了提高代码的可复用性和可读性。在Struts2中,可以通过实现`com.opensymphony.xwork2.util.ValueStackAware`接口创建自定义标签,让标签能够访问值栈中的数据...

    非常好用的自定义分页标签

    在JSP(JavaServer Pages)中,自定义标签是通过TLD(Tag Library Descriptor)文件来定义的,它描述了标签的行为、属性、变量等信息。TLD文件通常以`.tld`为扩展名,是XML格式的,用于告诉JSP引擎如何处理特定的...

    使用freemarker扩展struts标签

    5. `说明.txt`: 这个文件可能包含了关于如何使用这些自定义标签的详细说明,包括如何在FreeMarker模板中引用它们以及它们的功能。 要扩展Struts2的FreeMarker标签库,你需要遵循以下步骤: 1. **创建模型类**: 定义...

    freemarker格式化缩进文本或include指令

    FreeMarker是一个强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。它与Java语言紧密集成,允许开发者通过模板语言(Template Language)来分离应用程序的...

    freemarker中文学习资料

    - **数据模型**:Freemarker模板与应用程序的数据模型进行绑定,模型中的数据可以在模板中被引用和展示。 - **分离关注点**:Freemarker遵循MVC设计模式,负责视图部分,将业务逻辑和表现层分开,使代码更易于维护...

    freemarker代码

    - 探索Freemarker的高级特性,如宏和自定义标签,它们可以扩展模板语言的功能。 通过"freemarker-test"这个压缩包文件,你可以实践以上知识,创建和运行Freemarker模板,逐步熟悉其语法和特性。同时,结合实际项目...

    FreeMarker中文版word文档

    4. **自定义标签支持**:除了内置的对象外,FreeMarker还允许用户自定义标签,从而扩展模板语言的功能。这为高级用户提供了一种非常灵活的方式来扩展FreeMarker的功能。 5. **多语言支持**:除了提供中文版本的手册...

    freemarker的api

    4. **自定义函数和标签**:Freemarker支持自定义函数(`TemplateMethodModelEx`)和标签库(`TemplateDirectiveModel`),你可以扩展Freemarker的功能,使其更符合项目需求。 三、模板语法 Freemarker的模板语法...

    freemarker的学习资料、架包、源码

    2. **数据模型**:如何在Java代码中创建数据模型并传递给FreeMarker,以及如何在模板中引用这些数据。 3. **模板的生命周期**:从加载、解析、合并数据到生成输出的过程。 4. **模板缓存**:如何配置缓存策略,提高...

    超强freemarker使用总结,有示例有讲解,可做快速查询手册!!

    其中,`#` 符号用于区分标准的 HTML 标签和 Freemarker 的自定义标签。需要注意的是,当指令是用户自定义而非系统内置时,应将 `#` 替换为 `@`。此外,在使用 FTL 标签时,应遵循正确的嵌套规则,类似于 XML 标签的...

    freemarker官方中文帮助文档

    Freemarker是一款强大的模板引擎,常用于Web应用中的视图层渲染,比如Java Web开发。它的设计理念是将数据模型和展现逻辑分离,让开发者专注于HTML或者其他格式的模板设计,而不用关心具体的业务逻辑。这份...

    freemarker.jar下载

    同时,它能够与Java的自定义标签库(如JSTL)配合,提供更丰富的功能,如国际化、日期时间处理等。 7. 安全特性 Freemarker提供了安全模式,可以在不信任用户输入的情况下防止潜在的XSS攻击。通过设置安全策略,...

    FreeMarker中文API

    以下是一个简单的HTML模板示例,展示了如何使用FreeMarker指令(由`${...}`包裹)来引用数据模型中的数据: ```html &lt;html&gt; &lt;title&gt;Welcome! &lt;h1&gt;Welcome ${user}! &lt;p&gt;Our latest product: ${...

    freemarker学习例子

    10. **自定义标签(Custom Tags)**:如果需要集成其他框架(如Spring MVC)的标签,可以创建自定义标签,扩展Freemarker的功能。 在“freemarker学习例子”中,你可能看到如何设置数据模型、创建简单的模板、使用...

    Struts2 与Freemarker 的配置方法

    - 在Freemarker模板文件中,可以使用Struts2标签库,如`s:property`来显示Action中的属性值。例如,如果LoginAction中有username属性,可以这样写:`&lt;s:property value="username" /&gt;`。 7. **运行和调试**: - ...

    Freemarker 2.3.23 中文手册

    Freemarker是一款强大的模板引擎,常用于Web应用中的动态页面生成。它是一种声明式编程模型,使得开发者可以专注于数据的处理,而将视图层的展示逻辑交给Freemarker模板来处理。本手册针对的是Freemarker的2.3.23...

    Freemarker官方帮助文档

    3. 自定义标签库(Taglib):集成自定义功能,扩展Freemarker能力。 4. 配置管理:通过`freemarker.template.Configuration`类设置模板加载、缓存等策略。 六、最佳实践 1. 保持模板简洁,避免复杂的业务逻辑。 2. ...

    FreeMarker.pdf

    FreeMarker是一款强大的、开源的模板引擎,主要用于生成HTML或者其他类型的文本输出,特别是在Web应用开发中。它是Java平台上的一个轻量级工具,可以与Servlet容器、MVC框架(如Spring MVC)等配合使用,用于动态...

Global site tag (gtag.js) - Google Analytics