快速业务通道

Strus2的新表单标志的使用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
t;        value="''South''"        doubleValue="''Florida''"       doubleList="top == ''North'' ? {''Oregon'', ''Washington''} : {''Texas'', ''Florida''}" doubleName="state"        headerKey="-1"       headerValue="---------- Please Select ----------"       emptyOption="true" />

清单3 Showcase中<s:doubleselect />

很多朋友问: “上面的‘list’属性只有两个值,如果我有三个或更多的值, ‘doublelist’属性应该如何设定呢?”

我建议的做法是先定义一 个Map类型的对象,键为“list”的集合,值则为“doubleList”的集 合,然后“doubleList”的OGNL写成“#myMap[top]”,如以下代码所 示:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" % > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>    <title>Struts 2 Cool Tags - &lt;s:doubeselect/ &gt;</title>   <s:head /> </head> <body> <h2>&lt;s:doubleselect/&gt;</h2>    <s:form action="Store" >     <s:set name="foobar" value="#{''Java'': {''Spring'', ''Hibernate'', ''Struts 2''}, ''.Net'': {''Linq'', '' ASP.NET 2.0''}, ''Database'': {''Oracle'', ''SQL Server'', ''DB2'', ''MySQL''}}" />     <s:doubleselect list="#foobar.keySet()"               doubleName="technology" doubleList="#foobar[top]" label="Technology" />   </s:form> </body> </html>

清单4 WebContent/doubleselect.jsp

分布运行应用程序,在浏览器中键入: http://localhost:8080/Struts2_CoolTags/doubleselect.action,出现如下图所示页面:

Strus2的新表单标志的使用(3)

时间:2011-04-13 max

3、<s: token />

这个标志可能大家不常用,不过本人认为它还是挺有用的。在使用Struts 1.x时,因为跳 转通常是用Forward(而不是Redirect)实现的,所以当用户完成请求后,按“F5”刷新页面 时,就会重新提交上次的请求,这样经常会出错。要解决这个问题,<s:token />可以 帮你忙。

实现原理

在页面加载时,<s: token />产生一个GUID(Globally Unique Identifier,全局 唯一标识符)值的隐藏输入框如:

<input type="hidden" name="struts.token.name" value="struts.token"/> <input type="hidden" name="struts.token" value="BXPNNDG6BB11ZXHPI4E106CZ5K7VNMHR"/>

清单6 <s:token />的HTML输出

同时,将GUID放到会话(session)中;在执行action之前,“token”拦截器将会话 token与请求token比较,如果两者相同,则将会话中的token删除并往下执行,否则向 actionErrors加入错误信息。如此一来,如果用户通过某种手段提交了两次相同的请求,两 个token就

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号