Struts2讲义23(转载)
其它表单标签使用介绍
技术要点
本节代码具体介绍一些很难分类的表单标签的使用方式。
其它表单标签使用。
其它表单标签功能演示。
演示代码
其它表单标签的 JSP 文件:
- <!-----------------文件名:anotherFormTag.jsp------------------->
- <%@ taglib prefix="s" uri="/struts-tags"%>
- <body>
- ………
- <h3 align="left">
- head标签使用范例
- </h3>
- <s:head />
- <h3 align="left">
- token标签使用范例
- </h3>
- <s:token />
- <h3 align="left">
- hidden标签使用范例
- </h3>
- <s:hidden name="frank" />
- <s:hidden name="frank" value="frank"/>
- </body>
<!-----------------文件名:anotherFormTag.jsp------------------->
<%@ taglib prefix="s" uri="/struts-tags"%>
<body>
………
<h3 align="left">
head标签使用范例
</h3>
<s:head />
<h3 align="left">
token标签使用范例
</h3>
<s:token />
<h3 align="left">
hidden标签使用范例
</h3>
<s:hidden name="frank" />
<s:hidden name="frank" value="frank"/>
</body>
由于这些标签在页面上看不出实现效果,读者可用鼠标右击,在弹出菜单中选择“查看源文件”选项来查看。具体代码的实现如图 5.26 。
图 5.26 其它表单标签范例图
代码解释
( 1 ) head 标签的功能是生成页面文件的 HEAD 部分。但是它和一般的 JSP 、 HTML 页面文件 HEAD 部分又不同。它生成了对 AJAX 框架 dojo 的配置文件的引用或代码。具体都是有关 CSS 和 JavaScript 文件引用或代码。图 5.26 中第一个红框范围内显示内容就是这些文件引用和代码演示。在上一小节中有关日期选择的标签中也着重说明过。请读者仔细体会,有兴趣的读者也可以参考 dojo 的文档资料。
( 2 ) token 标签的功能是防止重复提交一个表单数据。有时候一些用户会有恶意提交的现象(黑客?),使用该标签就是为了避免这种现象发生。
其实在前面记述拦截器的章节中也介绍过 Struts2 一些缺省的拦截器。该标签就是利用了 TokenInterceptor 或 TokenSessionStoreInterceptor 拦截器。该标签在页面中增加了一个隐藏值,每次提交时候该值应该是不同的,如果上述两个拦截器拦截 HTTP 请求时候发现两次隐藏值相同,则判断有人重复提交同一界面同一表单,拦截器就不允许表单提交。图 5.26 中第二个红框范围内代码也表明了防止重复提交的该原理。
( 3 ) hidden 标签 的功能是在表单中增加一个隐藏输入的值域。图 5.26 中第三个红框范围内代码表明了两个示例。这两个示例不同之处在于一个 value 属性被赋予特定的值,另一个则没有显式定义 value 属性的值。由代码可知如果没有显式定义 value 属性,则 value 属性默认值为空