FreeMarker template error!
on line 64, column 13 in WEB-INF/reg.ftl ww.combobox not found.
The problematic instruction:
----------
==> user-directive ww.combobox [on line 64, column 13 in WEB-INF/reg.ftl]
in user-directive ww.form [on line 63, column 5 in WEB-INF/reg.ftl]
----------
在webwork+freemarker中,我们可以直接使用
<@ww.head/>
<@ww.form method="post" action="reg">
<@ww.textfield label="用户名" name="username"/> <!--文本框-->
<@ww.password label="密码" name="password" /><!--密码框-->
<@ww.radio label="性别" name="sex" list=r"#{'01':'男','00':'女'}" value = "'01'" /><!--单选框-->
<@ww.checkboxlist label="爱好" name="interest" list=r"#{1:'唱歌',2:'上网',3:'体育'}" value="1"/><!--复选框-->
<@ww.select multiple="true" label="权限" name="popedom" list=r"#{1:'添加用户',2:'修改用户',3:'删除用户'}" value="1"/><!--下拉框-->
<@ww.combobox label="城市" name="city" list="{'长沙','上海'}"/><!--组合框-->
<@ww.datepicker label="注册日期" name="date" showstime="true" /><!--日期选择控件-->
<@ww.textarea label="备注" name="remark" size=20 /><!--文本域-->
<@ww.submit value="注册"/><!-- 提交按钮 -->
<@ww.reset value="重置"/><!-- 重置按钮 -->
</@ww.form>
在上面的代码中,如果去掉<@ww.combobox />标签使用,程序可以正常运行,如果使用组合框,就会报上面的错误,
经过测试发现:<ww:combobox />标签在jsp中可以正常使用。
(taglib.tld来源于:webwork-2.2.4.jar /META-INF/标签描叙符文件)
<%@ taglib prefix="ww" uri="/WEB-INF/taglib.tld"%>
<ww:form>
<ww:combobox label="state" name="combox"
list="{'Californam','Oregan'}"/>
</ww:form>
同理,在freemarker中可以使用第三方标签的方法,将上面程序修改为:
<#assign t=JspTaglibs["/WEB-INF/taglib.tld"] />
<@ww.head/>
<@ww.form method="post" action="reg">
<@ww.textfield label="用户名" name="username"/> <!--文本框-->
<@ww.password label="密码" name="password" /><!--密码框-->
<@ww.radio label="性别" name="sex" list=r"#{'01':'男','00':'女'}" value = "'01'" /><!--单选框-->
<@ww.checkboxlist label="爱好" name="interest" list=r"#{1:'唱歌',2:'上网',3:'体育'}" value="1"/><!--复选框-->
<@ww.select multiple="true" label="权限" name="popedom" list=r"#{1:'添加用户',2:'修改用户',3:'删除用户'}" value="1"/><!--下拉框-->
<@t.combobox label="城市" name="city" list="{'长沙','上海'}"/><!--组合框-->
<@ww.datepicker label="注册日期" name="date" showstime="true" /><!--日期选择控件-->
<@ww.textarea label="备注" name="remark" size=20 /><!--文本域-->
<@ww.submit value="注册"/><!-- 提交按钮 -->
<@ww.reset value="重置"/><!-- 重置按钮 -->
</@ww.form>
同时在web.xml文件中提供对jsp标签的支持
<!-- freemark加载第三方标签 -->
<servlet>
<servlet-name>jspSupportServlet</servlet-name>
<servlet-class>com.opensymphony.webwork.views.JspSupportServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
将问题解决,该问题产生的主要原因是:freemarker对webwork中标签的部分支持,而不是全部支持.
注意:与<ww:select/>标签不同, 不能分别定义每个<option>标签的id属性或文本内容.
每一个属性都是直接使用列表元素的toString()方法生成的. 这大概是因为这里的下拉列表不关心实际提交的数据(指option的value属性), 而仅仅为了帮助用户填写文本框而已.
分享到:
相关推荐
在本文中,我们将深入探讨Struts2的标签体系,包括它们的功能、分类和使用方法。 首先,理解Struts2的作用至关重要。Struts2标签库为开发者提供了丰富的组件和模板支持,使得在页面上创建交互式用户界面变得简单。...
Struts2的标签不局限于任何特定的表现层技术,如JSP、Velocity或FreeMarker,这使得开发者可以灵活地选择适合项目的模板引擎。 Struts2的标签大致分为三类: 1. UI标签(User Interface):主要用于生成HTML元素,...
- **跨技术平台**:Struts2的标签库不依赖特定的表现层技术,如JSP、Velocity或FreeMarker,这意味着它们可以在多种模板语言中无缝使用。 2. **Struts2标签分类** - **UI标签**:主要用于生成HTML元素,分为表单...
21.2 FreeMarker标签 286 21.3 示例 287 21.4 小结 289 第22章 XSLT结果类型 290 22.1 概述 290 22.2 XSLT结果类型 292 22.3 示例 294 22.4 小结 295 第23章插件 296 23.1 概述 296 23.2 从哪里获得插件 ...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
Struts2标签库是Struts2框架中强大的视图层组件,它极大地简化了JSP和FreeMarker页面的编写,提供了丰富的标签来处理各种常见的UI元素和业务逻辑。以下是对这些标签的详细说明: A部分: 1. `<s:a href=""></s:a>`...