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>
 

 

由于这些标签在页面上看不出实现效果,读者可用鼠标右击,在弹出菜单中选择“查看源文件”选项来查看。具体代码的实现如图 5.26

Struts2讲义23_第1张图片

 

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 属性默认值为空。

你可能感兴趣的:(spring,jsp,Ajax,struts,dojo)