1

我正在 ToolTwist 设计器中编辑页面,并且显示了所有正常选项卡 - 编辑页面、导航点、测试页面、源代码等,但未显示“页面数据”选项卡。如何使选项卡显示,以便为我的页面输入页面数据?

4

1 回答 1

3

仅当您的页面上有需要页面数据的小部件时,才会显示页面数据选项卡。您还需要编辑 navpoint,而不是页面,因为页面数据属于 navpoint,并且单个页面定义可能由多个 navpoint 共享。换句话说,页面数据允许小部件在网站内的不同位置(导航点)出现不同。

如果您正在开发一个希望使用页面数据的小部件,您需要执行以下操作:

在 Widget Controller 类中,实现“UsesPageData”接口。这告诉设计器,当您单击引用包含此小部件的页面的导航点时,需要显示页面数据选项卡,并在选项卡上创建一个可以输入此小部件的 XML 的部分,特定于该特定导航点。

public class CarouselTab extends WbdWidgetController implements UsesPageData

为了让用户知道小部件需要什么 XML,您需要实现一个返回模板 XML 代码的方法。例如:


    public XData getInitialPageData(WbdWidget instance)
    {
        StringBuffer xml = new StringBuffer();
        xml.append("\n");
        xml.append("\n");
        xml.append("        id01\n");
        xml.append("        [Label 01]\n");
        xml.append("        [Add your widget here 01]\n");
        xml.append("\n");
        xml.append("\n");
        xml.append("        id02\n");
        xml.append("        [Label 02]\n");
        xml.append("        [Add your widget here 02]\n");
        xml.append("\n");
        xml.append("");
        return new XData(xml);
    }

定义一个属性,该属性定义要在页面数据选项卡上输入 XML 的位置上方显示的名称:


    protected void init(WbdWidget instance) throws WbdException
    {
        instance.defineProperty(new WbdStringProperty("pageDataSection", null, "PageDataSection", ""));
        ...
    }

生成页面时使用页面数据:


    @Override
    public void renderForJSP(WbdGenerator generator, WbdWidget instance, UimHelper ud, WbdRenderHelper rh) throws WbdException
    {
        ...
        Xpc xpc = ud.getXpc();
        xpc.start("tooltwist.wbd.getPagedata", "select");
        xpc.attrib("navpointId", WbdSession.getNavpointId(ud.getCredentials()));
        xpc.attrib("pageDataSection", pageDataSection);
        XData pagedata = xpc.run();
        // Do something with the page data
        ...
    }
于 2012-05-07T11:22:25.780 回答