- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作者:李金峰 @Persist传值 1 接下来我以一个实际例子演示页面间的传值。这个例子中页面上有一个10位数字的链接,点击每位数字后,可以把这个数字值传到下一页显示。效果如图 Main.tml ? ? @Persist传值 2 ? ? 4 @Persist传值 3 ?处为页面模版的链接,这里通过循环1到10个数字,形成十个链接,箭头所指即为页面显示。${index}即为显示的数字,每循环一次一个数字值。它对应这页面类中getIndex()函数。t:context=prop:index就是页面类 处的参数index值。 点击链接上的数字10触发页面类 处函数onActionFromSelect()select与连接id select对应。此时,框架会把t:context的值10设为这个函数的参数index。 4 4 @Persist传值 4 ?处@Persist 实现建立用户session。当页面跳转时,会把这个值设入session中。 在函数onActionFromSelect()中的参数index的值10赋给了_selected,被保存到session中。 ?处判断如果selected是刚刚被选中的值,就在此处显示,箭头所指即为显示。${selected}即对应模版类中的getSelected()函数,因为这个值已经保存到session中,所以跳转后依然能取到。 onActionFromSelect的返回值为空,所以仍会跳转到本页。这个函数还可以返回Object,Object指定要跳转的页面,点击后会跳转到Object页面。 @Persist传值 5 @InjectPage跳转传值 1 本例讲的是把一个页面注入到主页中,点击主页上的链接,跳入到注入页,并把参数传过去。 本例中页面类及模版分别命名为Start.java和Start.tml;跳转目标页为Url.java和Url.tml. Start.java中用@InjectPage注解把Url.java注入。Url.java中的两个函数 void onActivate(String message)和String onPassivate()会在适当的时候执行,用来接收把取出传过来的值 @InjectPage跳转传值 2 Start.java Start.tml 1 4 3 2 页面显示 5 5 @InjectPage跳转传值 3 1处指定跳转目标页Url。 2处字符串row在跳转过程中由Start页被带入到Url页面 3处页面模版中链接id为U,和页面类中的onActionFromU对应。当点击链接U,则会触发页面类中哦你ActionFromU(String something)函数,页面中的字符串循环从list中取出赋值给参数something.模版中链接的context属性的值会就为这一参数值,会被带入到Url中。 4处把字符串放人list中,通过循环取出赋给something传人Url页面。 5处list中储存的数据显示在页面上。 @InjectPage跳转传值 4 Start.java Start.tml 1 4 3 2 页面显示 @InjectPage跳转传值 4 3和4处是目标跳转页(就是主页上标注@InjectPage的页)中必须有的函数,跳转过程中会在适当的时候调用这个函数把传过来的值通过这两个函数传给页面类中的message属性。 1处为传过来的message值在页面上的显示。 2处为显示效果。 SSO传值 1 本例中包括页面登陆类Login.java,页面登陆模版Login.tml.登陆成功类Success.java,登陆成功模版Success.tml.登录成功后会跳转到登陆成功页面。 SSO(Session State Object)被保存在Session中,可以被同一用户的所有页面共享,但不会被其他用户共享。 SSO在第一次访问的时候会被自动创建,给SSO赋值即可保存这个值。在Login页面,当输入的用户名是“ljf”而且密码是“ljf”,Tapestry会自动创建一个字符串类型的SSO,并把用户名保存在其中。然后就可以在Success页面显示这个用户名。 SSO传值 2 Login.java Success.tml Login.tml Success.java 1 2 3 4 5 SSO传值 3 1处2处为登陆类和登陆模版相对应的用户名和密码。 3处登陆类中的one和登陆成功类中的theUser上都标注了@SessionState注释。这就是session state对象。这里定义SSO时,使用了两个不同的变量名称one和theUser,但它们是同一个SSO.因为SSO只跟类型有关,而不
文档评论(0)