Webx中的uris

1.uris.xml

        (1)最简单的uris.xml

    <services:uris>
        <uri id="server" requestAware="true" />

        <turbine-uri id="app1Link" exposed="true" extends="server">
            <componentPath>/</componentPath>
        </turbine-uri>

        <turbine-uri id="myLink" exposed="true" extends="app1Link">
            <componentPath>/index</componentPath>
        </turbine-uri>
        <turbine-content-uri id="app1Content" exposed="true" extends="app1Link" />

    </services:uris>
          其中的extends属性相当于java中的继承,myLink继承了app1Link,app1Link继承了server,server实际上代表的事服务器的地址和端口,所以组合起来就是 http://localhost:8081/index

这样的话不管是在代码还是vm中,都可以直接使用了。

但是注意:只有exposed="true"才能在代码和vm中使用,如果是false则不能使用,只能起到继承作用


(2)稍复杂的uris.xml

        <!-- ================================================================ -->
        <!-- Server Level: java server。                                     -->
        <!--                                                                  -->
        <!-- 使用方法: 不能直接使用,只被其它URI继承。                       -->
        <!-- ================================================================ -->
        <uri id="petstoreServer" />
        <!-- ================================================================ -->
        <!-- Component Level: webx modules。                                 -->
        <!--                                                                  -->
        <!-- 使用方法: link.setTarget('target.jhtml')                        -->
        <!--                  .addQueryData('name', 'value')                  -->
        <!-- ================================================================ -->
        <!-- admin -->
        <!--<componentPath>指向的是admin.car的URL-->
        <turbine-uri id="adminModule" exposed="true" extends="petstoreServer">
            <componentPath>/admin</componentPath>
        </turbine-uri>
        <!--指向admin.car中的图片、静态内容和URL-->
        <turbine-content-uri id="adminContent" exposed="true" extends="adminModule" />

        <!-- user -->
        <turbine-uri id="userModule" exposed="true" extends="petstoreServer">
            <componentPath>/user</componentPath>
        </turbine-uri>
        <turbine-content-uri id="userContent" exposed="true" extends="userModule" />

        <!-- ================================================================ -->
        <!-- Link Level: 继承前述各类links。                                 -->
        <!--                                                                  -->
        <!-- 使用方法: link                                                  -->
        <!-- ================================================================ -->
        <!--指向user.car中的各个页面-->
        <turbine-uri id="petstoreLoginLink" exposed="true" extends="userModule">
            <target>login.vm</target>
        </turbine-uri>
        <turbine-uri id="petstoreLogoutLink" exposed="true" extends="userModule">
            <target>login.vm</target>
            <query key="action">loginAction</query>
            <query key="eventSubmitDoLogout">yes</query>
        </turbine-uri>
        <turbine-uri id="petstoreRegisterLink" exposed="true" extends="userModule">
            <target>register.vm</target>
        </turbine-uri>
        <turbine-uri id="petstoreRegisterAccountLink" exposed="true" extends="userModule">
            <target>registerAccount.vm</target>
        </turbine-uri>
        <turbine-uri id="petstoreAccountLink" exposed="true" extends="userModule">
            <target>account.vm</target>
        </turbine-uri>

    </services:uris>

           可以看出实际上可以多级继承,然后直接使用即可。

          $userModule.setTarget("account/edit.vm")  生成结果:  http://localhost:8081/petstore/user/account/edit.htm

          $userContent.setContentPath("images/my.gif") 生成结果:http://localhost:8081/petstore/user/images/my.gif

          $petstoreLoginLink  生成结果:http://localhost:8081/petstore/user/login.htm



2.使用

        (1)在uris.xml中完全配置到目标target,如:

        <turbine-uri id="petstoreRegisterLink" exposed="true" extends="userModule">
            <target>register.vm</target>
        </turbine-uri>

                这样的话在代码中直接写就好了

$petstoreRegisterLink

        (2)配置到一定程度,再设置target即可

        <turbine-uri id="userModule" exposed="true" extends="petstoreServer">
            <componentPath>/user</componentPath>
        </turbine-uri>

                在代码中设置target

$userModule.setTarget("register.vm")


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值