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三重罪的第二点。
分享到:
相关推荐
总结,Spring Web MVC和Spring 2.0 Form Tag的结合,使得在Java Web开发中处理表单和模型数据变得更加简洁高效。通过使用Form Tag,开发者可以专注于业务逻辑,而不必过多关注表单的底层细节,提高了开发效率和代码...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
在JSP页面中,Struts2标签可以与标准JSP标签结合使用。例如,`s:head`用于在页面头部引入所需的CSS和JavaScript资源,而`s:submit`创建一个提交按钮。这些标签帮助开发者避免在JSP页面中直接写HTML和JavaScript,...
除了预定义的标签外,Struts2还允许开发者自定义标签,这需要创建一个继承自`org.apache.struts2.views.jsp.TagSupport`的Java类,并在JSP页面中使用`<s:tag>`进行调用。 五、标签库的扩展性 Struts2的标签库不仅...
5. **标签的动态属性**:使用OGNL表达式在标签中动态设定属性。 6. **标签的嵌套使用**:如何组合多个标签以创建复杂的UI元素。 7. **自定义标签**:当内置标签无法满足需求时,如何编写和注册自定义标签。 学习...
Struts标签库是Java Web开发中的一个重要组成部分,尤其在基于MVC(Model-View-Controller)架构的应用中,它极大地简化了视图层的构建。Struts 1和Struts 2都提供了丰富的标签库来帮助开发者高效地创建动态HTML页面...
WebWork UI标签是一种用于构建Web应用程序用户界面的组件,它提供了丰富的功能,使得开发者能够更加便捷地创建交互式的Web...在实际开发中,结合WebWork的Action和Interceptor机制,可以实现复杂的业务逻辑和用户交互。
Struts2框架是Java Web开发中的一个强大工具,它提供了丰富的标签库,使得开发者能够更方便地在JSP页面中处理业务逻辑和展示数据。了解和掌握Struts2标签库是提升开发效率的关键,本文将深入解析Struts2的标签库及其...