`
yezi
  • 浏览: 279100 次
  • 来自: 北京
社区版块
存档分类
最新评论

关于在freemarker中使用radio tag遇到的问题

阅读更多
freemarker是看到大家的推荐开始强制自己学习的,毕竟不能总用io来实现模板的功能啊,而且很多牛人都说这个东西好,自己也不免心动。

一段时间下来,感觉freemarker这种模板技术确实是好,而且功能很强,但是总是感觉它的“水”太深,一般的程序员在使用的时候会遇到很多困难。而且freemarker远远没有velocity的影响力大,其社区的活跃度也小了很多,这也是学习曲线相对比较高的原因。robbin曾经说半天时间就能熟练掌握他,我想这时对一个经验丰富的人员说的吧。我的学习过程绝对不是半天能熟练掌握的。也许这就是差距吧。

言归正传。准备实现一个功能,需要一个form表单,里面有一个radio来供选择注册人员的性别。对于一个web人员,这太简单了,但是我却在使用freemarker的过程中折腾了半天。传统的方法是这样的
<input type="radio" name="sex" id="sex2" value="2"/><label for="sex2">男</label>
<input type="radio" name="sex" id="sex1" value="1" checked="checked"/><label for="sex1">女</label>


如果通过freemarker来实现的话,官方的文档上是这样描述的
<@ww.radio name="sex"  list="sexlist" />
sexlist是一个list,如果是<key,value>结构的话,那么list的key将作为value,而value作为radio的label,这样就能实现以上的功能。除此基础外,还需要当用户选择后,如果跳转回该页面,radio相应的选项被选中。这样的功能,应该注意以下两点:
1、在action中构造一个HashMap,将这个HashMap作为radio中的list,这样系统将自动将HashMap的key作为radio的value,而把value作为label出现,如果构造一个list的话,radio的value和label将是相同的值。
2、注意map的key是一个String类型,这一点搞的我浪费了很长的时间,当想实现radio相应的选项被选中这个功能时,如果你传过去的值是一个其他类型的值时,radio选项被选中这个功能就没办法实现了。这点太难察觉了。这时才明白robbin关于freemarker三重罪的第二点。
分享到:
评论

相关推荐

    freemarker 中文乱码解决

    在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的模板引擎,被广泛应用于Web开发中,用于动态生成HTML、XML等文本格式的页面。然而,当涉及到非英文...

    在struts2中使用freemarker模版

    要开始在Struts2中使用FreeMarker模板,首先需要将`freemarker-2.3.8.jar`库文件导入到你的项目的`WEB-INF/lib`目录下。这个库包含了FreeMarker模板引擎的所有必要组件。然后创建一个新的web工程,例如`...

    freemarker中文API手册

    3. 通用数据模型:FreeMarker不直接反射到Java对象,而是通过插件式对象封装,以变量方式在模板中显示。 4. 为Web准备:内建处理典型Web相关任务,能够集成到Model2 Web应用框架中作为JSP的替代,支持JSP标记库。 5....

    freemarker中文文档与包

    Freemarker是一个强大的模板引擎,主要用于生成HTML或其他类型的文本输出,尤其在Web应用开发中广泛使用。它是一种基于Java的开源技术,允许开发者通过简单的模板语言(Template Language)与数据模型相结合,动态...

    FreeMarker2.3.23官方中文文档

    通过阅读和理解FreeMarker 2.3.23的官方中文文档,开发者能够熟练掌握FreeMarker的使用技巧,从而在Web应用开发中更加高效地创建和管理动态内容。这份文档详尽地涵盖了FreeMarker的各个方面,无论是初学者还是经验...

    FreeMarker中文文档.pdf下载

    根据提供的文件信息,我们可以深入探讨FreeMarker的相关知识点及其在网页模板设计中的应用。FreeMarker是一种用Java编写的模板引擎,其主要用途在于帮助开发者高效地生成动态内容,尤其是在Web开发领域有着广泛的...

    Java中使用 FreeMarker 生成pdf盖章合同文件

    本篇文章将深入探讨如何在Java中使用FreeMarker生成带有盖章的PDF合同文件。 首先,让我们了解FreeMarker的基本概念。FreeMarker是一个基于模板的语言,它与Java代码分离,允许开发者用简单的模板语法来表示数据。...

    Freemarker中遍历list集合实例

    本实例将详细介绍如何在Freemarker中遍历list集合,帮助你理解和应用这一核心功能。 在Freemarker中,遍历list集合主要依赖于`&lt;#list&gt;`指令。当你有一个Java对象,例如一个ArrayList或LinkedList,这些对象在...

    struts2中使用freeMarker

    在Struts2中使用FreeMarker,主要涉及以下几个核心概念和步骤: 1. **配置FreeMarker**: - 在Struts2的配置文件(通常为struts.xml)中,你需要指定FreeMarker作为默认的视图技术。 - 配置FreeMarker的路径,...

    freemarker 自定义freeMarker标签

    这通常是通过`Configuration`对象的`setSharedVariable`方法完成的,将你的自定义指令类实例绑定到一个特定的名字,这个名字就是你在模板中使用的标签名。 3. 使用自定义标签:在模板文件中,你可以像使用内置标签...

    freemarker 教程 使用手册

    2. 变量与数据模型:在Freemarker中,变量是由`${}`包裹的,它们从Java对象(数据模型)中获取值。数据模型是Java对象的集合,可以是Map、POJO或Spring MVC中的ModelAndView。 3. 标准指令:Freemarker提供了一系列...

    FreeMarker+中文手册

    2. **数据模型(Data Model)**:数据模型是应用程序提供给FreeMarker的数据源,它包含了要在模板中展示的变量和对象。这些数据可以是Java对象、集合、Map等。 3. **模板语言(Template Language)**:FreeMarker的...

    freemarker中文学习资料

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

    非常好的Freemarker中文教程

    Freemarker是一款强大的模板引擎,常...通过详细研读这份教程,开发者不仅可以掌握Freemarker的基本使用,还能深入理解其高级特性和优化技巧,从而在实际工作中更高效地生成静态文件,提升Web应用的性能和用户体验。

    初试FreeMarker模板的一些问题

    这篇名为“初试FreeMarker模板的一些问题”的博客可能涵盖了在学习和使用FreeMarker过程中遇到的基础问题和解决方法。 1. **模板语言基础** FreeMarker使用模板语言来定义如何将数据模型渲染成可读的输出。模板由...

    freemarker中文手册.pdf

    - **模板内容**:示例中使用`${...}`包裹的占位符作为FreeMarker指令,将在渲染时被相应的数据替换。 - **数据模型**:定义了一个包含用户名称和最新产品的数据模型,该模型由开发者创建并通过FreeMarker传递给...

    freemarker常用使用文档

    freemarker常用使用文档......................................................................

    FreeMarker中文参考手册以及jar包

    在Java项目中,通常将这个jar包添加到类路径(classpath)中,以便在程序中使用FreeMarker的API创建和处理模板。 总的来说,这份资源提供了全面的学习FreeMarker的资料,无论是初学者还是经验丰富的开发者,都能...

    freemarker-2.3.31-API文档-中文版.zip

    赠送jar包:freemarker-2.3.31.jar; 赠送原API文档:freemarker-2.3.31-javadoc.jar; 赠送源代码:freemarker-2.3.31-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics