1. 功能介绍

    数据传递包括获取上个页面请求中的参数,同时可以传递当前请求到下一个页面中,实现页面参数的传递,数据传递为无状态参数传递,如果要将第一个页面的参数传递到第三个页面,必须通过一页一页方式传递。

  2. 主要特性

    1. 适应post,get等方式传递参数,可以将一个或者一组数据传递到下个页面。
    2. 参数传递简单,只需要setTransfer即可。
  3. 获取上页参数

    1. public String pd.getParameter("test");获取指定名称的参数
    2. public String pd.getParameter("test", defaultValue);获取指定名称的参数,如果为空取默认值defaultValue
    3. public String[] pd.getParameters("test");获取指定名称的数组数据
    4. public String[] pd.getParameters("test", defaultValues);获取指定名称的数组数组,如果为空取默认数组数据defaultValues
    5. public IData pd.getData();获取上页所有的数据
    6. public IData pd.getData(“group”);获取上页指定组名的数据,组名以group_XXX方式组成,如:"cond_STAFF_ID"
    7. public IData pd.getData(“group”, istrim);获取上页指定组名的数据,并去掉组名前缀,默认不去除前缀,如:获取的"cond_STAFF_ID"对象,如果设为true,则cond_STAFF_ID将变成STAFF_ID
  4. 传递参数到下页

    1. pd.setTransfer("test"); //传递本页已有的数据到下页,通过名字(test)获取对应的数据到下页
    2. pd.setTransfer("test1", "..."); //传递指定的名称和数据到下页
    3. pd.setTransfers("test2", new String[] {"test...."}); //传递指定名称和数组数据到下页
    4. pd.setTransferData(pd.getData()); //传递IData对象的数据集合到下页,可以取出PageData中所有的数据传到下页
    5. pd.setTransferData("info"); //传递指定组名的数据集合到下页
    6. pd.setTransferData("info", idata); //传递指定组名的数据集合到下页,同时将数据集加上指定的组名
    7. 注:如果需要传递一个IDataset或一个IData,可以pd.setTransfer("test", idata.toString()|idataset.toString()),获取时再将new DatasetList|DataMap(pd.getParameter("test"))将值取回来
  5. 设置本页参数

    1. pd.setParameter("test3", "test..."); //设置当前页的数据值
    2. pd.setParameters("test4", new String[] {"test4...."}); //设置当前页的数组数据
    3. 注:setTransfer,setTransfers,setTransferData不光可以将数据传递到下页,还可以在本页中取出传递的数据,而setParameter,setParameters只能设置本页的数据,不能传递到下页
  6. 应用场景(参数传递的三种情况)

    1. 在Java程序中,直接通过redirectTo,redirectToMsg方式跳转的指定页面方法(只需写Java代码) 只需在在跳转动作前将 pd.setTransferData("condition");类似方式将数据传递即可 如果是通过链接方式需要将查询条件传递到下页中
    2. 在HTML页面中,通过链接将需要的数据传递到下页(只需写HTML代码)
      <a 
      	jwcid="@wade:PageRedirect" source="ognl:{condition,info}" or "ognl:condition" //可以是单个IData对象或多个Idata对象
      	value="ognl:info.SCHE_SUBJECT" onclick="redirectTo('component.util.ScheduleEdit', 'querySchedule', parameters)"
      />
      
    3. 在HTML页面中,通过提交按钮将数据传递到下页(只需写Java代码)在java代码中写:pd.setTransferData("condition");
  7. 注意事项

    1. 参数传递是指Java端操作参数传递。
    2. 老版本中参数传递,还要在HTML中加上@wade:PageData组件,目前的版本这个组件不再需要使用。
    3. ajax发起的请求传递参数和普通submit提交传递的参数都可以使用pd.setTransferXXX等方式。