# XML出参

由于使用了 Mybatis-Link 连表查询,返回的结果数据复杂,所以通过XML的形式对数据进行格式化输出。

<controller name="SysUserController">

    <grid name="INFO">
        <col type="yui.bss.sys.vo.SysUserVo" />
    </grid>

    <grid name="USER_A_ROLE">
        <col type="yui.bss.sys.vo.SysUserVo" />
        <col prefix = "role" type="yui.bss.sys.vo.SysRoleVo" />
    </grid>

    <grid name="USER_W_ROLE">
        <col type="yui.bss.sys.vo.SysUserVo" />
        <collection name="roleList" mapper="sysRoleDtoxList">
            <col prefix = "role" type="yui.bss.sys.vo.SysRoleVo" />
        </collection>
    </grid>

    <grid name="USER_W_ROLE2">
        <col name="username" mapper="sysUserVo.username" descr="登录名" />
        <col name="email" mapper="sysUserVo.email" descr="邮件" />
        <collection name="roleList" mapper="sysRoleDtoxList">
            <col name="nm" mapper="sysRoleVo.nm" descr="名称" />
            <col name="rmks" mapper="sysRoleVo.rmks" descr="备注" />
        </collection>
    </grid>

    <grid name="EXPT0">
        <col name="username" mapper="sysUserVo.username" descr="登录名" />
        <col name="email" mapper="sysUserVo.email" descr="邮件" />
        <col name="type" mapper="sysUserVo.type" descr="类型" 
            handler="enCls(yui.bss.sys.en.SysUserEn.Type, false)"/>
        <col name="rmks" mapper="sysUserVo.rmks" descr="备注" />
    </grid>
    
    <grid name="EXPT">
        <col name="username" mapper="sysUserVo.username" descr="登录名" />
        <col name="email" mapper="sysUserVo.email" descr="邮件" />
        <col name="type" mapper="sysUserVo.type" descr="类型"
            enCls="yui.bss.sys.en.SysUserEn.Type|false"/>
        <col name="rmks" mapper="sysUserVo.rmks" descr="备注" />
    </grid>

    <grid name="IMPT">
        <col name="username" mapper="sysUserVo.username" descr="登录名" />
        <col name="email" mapper="sysUserVo.email" descr="邮件" />
        <col name="type" mapper="sysUserVo.type" descr="类型"
            enCls="yui.bss.sys.en.SysUserEn.Type"/>
        <col name="rmks" mapper="sysUserVo.rmks" descr="备注" />
    </grid>
    
    <grid name="IMPT_ERR">
        <grid name="IMPT" />
        <col name="ie" mapper="sysUserVo.ie" descr="错误信息" />
    </grid>

    <grid name="GRID">
        <col name="username" mapper="sysUserVo.username" descr="登录名" />
        <col name="email" mapper="sysUserVo.email" descr="邮件" />
        <col name="type" mapper="sysUserVo.type" descr="类型" />
        <col name="rmks" mapper="sysUserVo.rmks" descr="备注" />              
    </grid>
</controller>

使用类配置的方式,实体类中必须加入注解@Note,不然不会在前端输出

@Data
@TableName("t_sys_user")
public class SysUserVo {
    @Note("ID")
    private Long id;
    @Note("角色ID")
    private Long roleId;
    @Note("登录名")
    private String username;
    @Note("邮件")
    private String email;
    @Note("备注")
    private String rmks;
    @Note(value="类型(0:管理员,1:非管理员)", enCls = SysUserEn.Type.class)
    private Integer type;
}

说明

  • 数据输出可以采用类的方式,也可以采用逐行配置的方式。
  • 如果 t_sys_usert_sys_role 连表查询,那么可以使用 USER_A_ROLE 来输出。
  • 如果 t_sys_usert_sys_role 一对多查询,那么可以使用 USER_W_ROLEUSER_W_ROLE2 来输出。
  • EXPT0EXPTIMPT 配置枚举类,就可以对这个字段的真正含义输出,也可以直接在类中直接配置。
  • IMPT_ERR 该Grid,采用了继承 IMPT 的方式配置。
  • GRID 该Grid采用逐行配置的方式。

默认对输出的字段都会带有一个中文解释,就是类中Note配置或者是XML中descr的配置。

赞助商