总结:kathasis如何发送get请求获取数据
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请求获取数据的更多相关文章
- 16 react 发送异步请求获取数据 和 使用Redux-thunk中间件进行 ajax 请求发送
1.发送异步请求获取数据 1.引入 axios ( 使用 yarn add axios 进行安装 ) import axios from 'axios'; 2. 模拟 在元素完成挂载后加载数据 并初始 ...
- 向.net后端发送请求获取数据,在前端动态填充表格
实现效果 实现步骤 通过Ajax请求的方式 1.在前端定义Table 2.通过Ajax向.net后端发送数据请求 3.在.net后端定义方法供前端调用,并返回所需的数据 4.通过构造字符串的方式,将后 ...
- Ajax发送POST请求对数据的封装
Ajax发送POST请求把数据到后端后,后端收到数据并解析出来 示列一: Ajax发送请求,这里主要是发送一个数组的数据类型到后端,如果没有先把数组进行格式化成字符串的话,后端就收了就是一个字符串类型 ...
- jQuery使用ajax跨域请求获取数据
jQuery使用ajax跨域请求获取数据 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的 ...
- 【C语言】Socket发送HTTP-TCP请求,数据有字符串插入
问题描述: 场景:编写Socket接口,向LOKI发送POST请求查询数据 BUG发现位置:通过cJSON读取时间戳,发现被截断. 现象:通过read()去读取返回的数据,数据行中被插入字符:如下 c ...
- ajax异步请求获取数据,实现滚动数字的效果。
BackgroundPositionAnimate.js下载 需要导入的js: <script type="text/javascript" src="js/jqu ...
- Android Studio利用异步任务AsyncTask发送post请求获取json数据
syncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主 ...
- 关于前端ajax请求获取数据成功之后无法操作数据的原因及解决方法
前言:做项目的时候我用ajax请求json数据,遍历使用数据时却发现页面无响应.关于这个问题今天有个朋友又问了我一次,记录一下.由于我没有记录,这里用我朋友的图片. 代码现象: 这里他是使用alert ...
- Ajax在静态页面中向指定url发送json请求获取返回的json数据
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
随机推荐
- Ajax做无刷新分页
1.主页面代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- BZOJ5118:Fib数列2(O1快速模)
题意:输入N,输出fib(2^N)%1125899839733759.(P=1125899839733759是素数) 思路:欧拉降幂,因为可以表示为矩阵乘法,2^N在幂的位置,矩阵乘法也可以降幂,所以 ...
- java-03方法课堂练习
1.java中利用static(静态),将方法放入类中.如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用. 2.编写一个方法,使用以上算法生成指定数目(比如1000个 ...
- Redis底层探秘(一):简单动态字符串(SDS)
redis是我们使用非常多的一种缓存技术,他的性能极高,读的速度是110000次/s,写的速度是81000次/s.这么高的性能背后,到底是怎么样的实现在支撑,这个系列的文章,我们一起去看看. redi ...
- redis设置为null问题
查看源码后发现,redis没有删除方法,本想给他设置为null,但是redis报错,所有仔细想了一下,发现redis提供了一个时间限制方法,所有可以让redis的时间限制为1s,就想当于删除redis ...
- linux开发核心理解
目录 授权 致谢 序言 更新纪录 导读 如何写作科技文档 I. 气候 1. GUI? CLI? 2. UNIX 缩写风格 3. 版本号的迷雾 4. Vim 还是 Emacs 5. DocBoo ...
- Linux查看硬件信息(北桥芯片组、南桥、PCI接口、CPU等)
Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) Linux查看硬件信息(北桥芯片组.南桥.PCI接口.CPU等) 查看MCH(北桥) 查看ICH(南桥) 查看CPU 查看pci接口设 ...
- BZOJ4066:简单题
浅谈\(K-D\) \(Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline ...
- Java实现Queue类
Java实现Queue类 import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Sc ...
- 在centos阿里云服务器上安装配置php运行环境 安装php7
http://blog.csdn.net/kesixin/article/details/72882469 单独安装php7 http://blog.csdn.net/tang05709/articl ...