在Home页面,我们输入用户名,然后将用户名存入Visit对象,其实就是session中。跳转到FirstPage页面,首先,Border页面一执行,就会触发一个监听器PageEnderListener。实现PageEnderListener接口,并重写PageBeginRender方法,就使得Border组件在表现之前,能够触发PageBeginRender方法。
public void pageBeginRender(PageEvent event) { 
Visit visit = (Visit) this.getPage().getVisit(); 
if (visit.getUsername() != null) 

this.setUsername(visit.getUsername()); //从Visit对象中获取用户名 
this.setRegister(true); //确定用户已经登陆
 } 

在该方法中,我们取出Visit对象中所保存的用户名,即可通过Insert组件表现在页面上: <span jwcid="@Insert" value="ognl:username">用户名称</span>

解决方案 »

  1.   

    要人通过自己实践,研究,已经基本上搞明白了。大概过程如下:页面表现时,触发监听器,先 调用pageBeginRender方法,然后把页面表单数据和参数填入绑定的页面类属性中,然后执先相关的 submit方法,接着再进行页面表现(即将数据填充到html中以输出html)之前,再次触发pageBeginRender方法。如果是以非表单提交方式链接到本页面,则不存在把表单数据填入页面类属性的问题,则只在将数据填充到html以输出到客户端时触发一次pageBeginRender。
    如果该页面类实现了IExternalPage接口,activateExternalPage(Object[] parameters,IRequestCycle cycle)的实现顺充和submit方法类同
    guokkkkkk() 的回复也给了我一些启示,在此表示感谢