首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

15.6.1  应用<ww:token>标签

<ww:token>标签创建一个新的表单标记(token),并用token做关键值把token的值保存到session中。这个token的值是一个经过加密的、非常安全的UUID,所以我们不用担心出现重复的token值或者用户推测出token值。这是因为在表单中的token值是一个随机的32位字符(包括字母A至Z和数字):有3236个可能的值,这需要花几千年时间来推测。例程15-12演示了一个使用token标签的例子。

例程15-12  在表单中使用token标签

<ww:form action="saveCategory">

<ww:token name="category.token"/>

<ww:if test="category.id != null">

<ww:hidden name="categoryId" value="%{category.id}"/>

</ww:if>

<ww:select label="%{getText('text.parent')}"

name="category.parentCategory"

value="category.parentCategory.id"

list="#categoryPicker.categories"

listKey="id"

listValue="#indent({top, ''}) + name" />

<ww:textfield label="%{getText('text.name')}"

name="category.name"/>

<ww:submit value="Save"/>

</ww:form>


在这里,token标签指定了一个name属性。如果没有指定标记(token)名称,WebWork会使用一个默认的标记(token)名称。不论是默认的还是指定的标记(token)名称,它在任何时候都会得到一个有效的token值。这就意味着你可以使用不同的标记(token)名称来保护Web应用的不同部分。token标签在表单中创建两个隐藏的输入字段,一个保存标记(token)名称,一个保存标记(token)的值。在表单提交到服务器以后,Token Interceptor会读取这两个表单字段。下面是<ww:token>标签输出内容的例子:

<input type="hidden"

name="webwork.token.name"

bbbbbvalue="category.token"/>

<input type="hidden" name="category.token"

bbbvalue="F0DVU9PRT393S28Z3EO5K5JNNLCA6NQJ"/>

第一个隐藏字段指定了真正的表单标记(token)的名称。在这个例子中,因为我们进行了特殊指定,所以表单标记(token)应该是category.token。第二个隐藏字段的名称是上面指定的表单标记(token)的名称,而这个隐藏字段值是一个加密过的标记(token)值。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论