1.进入前端页面,找到对应的模块,开始塞字段数据。

2.如果字段为基本类型,如String,比如website,则在前段界面,右击,inspect,找到对应的代码所处的jsp,跳转到该jsp,通过该jsp。在前端添加一个person,则地址栏显示:backstop/crm/ManageContacts.do?ACTION=NEW_PERSON,因此,确定

对应的action是ManageContacts。到editPerson.jsp中搜索关键字website,确认字段名是website,然后在ManageContacts中搜索website,可以查看到这个website字段具体是塞在party接口中,进入party,发现其实现类是AbstractPartyEntity,左按ctrl,右边鼠标点中AbstractPartyEntity,可发现其中PersonEntity继承了AbstractPartyEntity。而PersonEntity刚好又实现了Person这个接口。

找到界面字段在entity对应的地方后,可以开始以下操作:

1.在PersonDto中定义website字段。

2.在PersonConverte的updateDto(Person entity,PersonDto dto)中,dto.setWebsite(entity.getWebsite()),直接塞数据即可。

3.如果界面字段是一个实体类型,则在PersonDto

@JsonApiToOne(lazy = true)
    @JsonApiLookupIncludeAutomatically
    private SystemUserDto representative;

如果是一对多,则为:

@JsonApiToMany(lazy = true)
    private List<PartyLocationDto> partyLocations;

注意,在PersonDto属性中,只能定义是基本类型或者Dto实体类型,不能是Entity类型,也就是,不能定义为private SystemUser representative.

4.新建SystemUserDto等,包含需要的属性。

5.确保有SystemUserRepository。

6.   确保SystemUserConverter,用于SystemUserDto和SystemUserEntity之间的转换。

7.添加person和representative的关系,新建PersonToRepresentativeRelationship:

@Singleton
public class PersonToRepresentativeRelationship
        extends AbstractRelationshipRepository<PersonDto, SystemUserDto> {

}

添加person和PartyLocation的关系,新建PersonToPartyLocationRelationship:

@Singleton
public class PersonToPartyLocationRelationship extends AbstractEntityToPartyLocationRelationship<PersonDto> {

}
public abstract class AbstractEntityToPartyLocationRelationship<S extends AbstractKatharsisDto>
        extends AbstractRelationshipRepository<S, PartyLocationDto> {

    @Override
    public List<PartyLocation> getTargetEntities(Object source, String fieldName, QueryParamsHelper helper) {
        Person sourceEntity = cast(source);
        List<PartyLocation> partyLocations = new ArrayList<PartyLocation>();

        if(!Objects.isNull(sourceEntity.getHomeLocation())){
            partyLocations.add(sourceEntity.getHomeLocation());
        }else if(!Objects.isNull(sourceEntity.getBusinessLocation())){
            partyLocations.add(sourceEntity.getBusinessLocation());
        }else if(!Objects.isNull(sourceEntity.getOtherLocation1())){
            partyLocations.add(sourceEntity.getOtherLocation1());
        }else if(!Objects.isNull(sourceEntity.getOtherLocation2())){
            partyLocations.add(sourceEntity.getOtherLocation2());
        }
        return partyLocations;

    }

    @Override
    public void addRelations(S source, Iterable<String> targetIds, String fieldName) {
    }

}

对以上代码的理解:

在PersonDto中,通过注解,已经定义了personDto和partyLocationDto之间的关系,那么,这里的relationship则是用来定义person和partyLocation实体之间的关系。

7.在PersonConverter中的updateDto(Person entity, PersonDto dto)方法中,添加如下代码:

 private void setRepresentative(Person person, PersonDto personDto) {
        if (!Objects.isNull(person.getRepresentative())) {
            personDto.setRepresentative(new SystemUserDto(person.getRepresentative().getId()));
        }
    }

这里表示,将entity数据塞到dto中去。在塞的过程中,要保证,SystemUser对应的entity和dto也是可以相互转换的。

为什么能通过一个id,然后直接new SystemUserDto(id)就可以获取到了SystemUser的全部数据信息,因为:

在发送请求:/backstop/api/people/781187/company时,kathasis框架会自动去根据repository执行findOne或者findAll查找。


												

总结:kathasis如何发送get请求获取数据的更多相关文章

  1. 16 react 发送异步请求获取数据 和 使用Redux-thunk中间件进行 ajax 请求发送

    1.发送异步请求获取数据 1.引入 axios ( 使用 yarn add axios 进行安装 ) import axios from 'axios'; 2. 模拟 在元素完成挂载后加载数据 并初始 ...

  2. 向.net后端发送请求获取数据,在前端动态填充表格

    实现效果 实现步骤 通过Ajax请求的方式 1.在前端定义Table 2.通过Ajax向.net后端发送数据请求 3.在.net后端定义方法供前端调用,并返回所需的数据 4.通过构造字符串的方式,将后 ...

  3. Ajax发送POST请求对数据的封装

    Ajax发送POST请求把数据到后端后,后端收到数据并解析出来 示列一: Ajax发送请求,这里主要是发送一个数组的数据类型到后端,如果没有先把数组进行格式化成字符串的话,后端就收了就是一个字符串类型 ...

  4. jQuery使用ajax跨域请求获取数据

    jQuery使用ajax跨域请求获取数据  跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的 ...

  5. 【C语言】Socket发送HTTP-TCP请求,数据有字符串插入

    问题描述: 场景:编写Socket接口,向LOKI发送POST请求查询数据 BUG发现位置:通过cJSON读取时间戳,发现被截断. 现象:通过read()去读取返回的数据,数据行中被插入字符:如下 c ...

  6. ajax异步请求获取数据,实现滚动数字的效果。

    BackgroundPositionAnimate.js下载 需要导入的js: <script type="text/javascript" src="js/jqu ...

  7. Android Studio利用异步任务AsyncTask发送post请求获取json数据

    syncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主 ...

  8. 关于前端ajax请求获取数据成功之后无法操作数据的原因及解决方法

    前言:做项目的时候我用ajax请求json数据,遍历使用数据时却发现页面无响应.关于这个问题今天有个朋友又问了我一次,记录一下.由于我没有记录,这里用我朋友的图片. 代码现象: 这里他是使用alert ...

  9. Ajax在静态页面中向指定url发送json请求获取返回的json数据

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

随机推荐

  1. 如何去除Linux文件的^M字符

    Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同.*注:“^M”,需要使用Ctr ...

  2. Memcache mutex设计模式

    Memcache mutex设计模式 转自:https://timyang.net/programming/memcache-mutex/ 场景 Mutex主要用于有大量并发访问并存在cache过期的 ...

  3. RedHat5.8 编译内核驱动 合成initrd.img

    /******************************************************************* * RedHat5.8 编译内核驱动 合成initrd.img ...

  4. UVA - 242 Stamps and Envelope Size (完全背包+bitset)

    题意:给你一些邮票面值的集合,让你选择其中一个集合,使得“能用不超过n枚集合中的邮票凑成的面值集合S中从1开始的最大连续面值”(即mex(S)-1)最大.如果有多解,输出集合大小最小的一个:如果仍有多 ...

  5. Python之用虚拟环境隔离项目,并重建依赖关系

    下面将以安装django和mysqlclient介绍如何用虚拟环境隔离项目,并重建依赖关系.操作系统:windows 10:python版本:python3.7 1. 安装python虚拟环境 (1) ...

  6. layui.js框架的启发

    最近做前台设计的MM,应用了layui.js框架,是一个可以按模块加载的js框架,可以实现UI上的一些效果,比如"手风琴折叠"面板.我看了下源码,抽出了其框架,应用到公司的项目中, ...

  7. 【javascript常见面试题】常见前端面试题及答案

    转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...

  8. Oracle RMAN 学习:演练进阶篇

    Oracle RMAN 学习:演练进阶篇 5 Rman备份演练进阶篇 5.1 是否选择增量备份 Backup命令生成的备份集中只备份了那些使用了的数据块,备份集实际大小已经较目标数据库的数据文件小了很 ...

  9. 利用DNS进行传输数据

    曾经有这样一道题目,困了我数个小时,最后我尝试利用此方法时我知道真相的时候,眼泪已掉下来. 遇到的是一个流量分析题,分析DNS数据,拿到flag 流量如图所示: 进入linux,提取: [root@s ...

  10. 使用百度地图API进行坐标系转换

    最近在做移动APP的定位功能的时候发现系统GPS获取的位置信息再从百度地图API获取的实际地址总是有误差,偏离了好几个街道,但百度地图本身没这个问题.在网上查找一番发现了地图的坐标系一说,下面简单介绍 ...