总结: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 ...
随机推荐
- GET请求与POST请求区别
GET请求与POST请求区别 a:语义: GET:客户端想获取服务器资源 POST:客户端想传递数据给服务器 b:安全级: GET:不安全 POST:不安全 c:数据长度 GET:客户端发送数据最长1 ...
- 机器学习敲门砖:任何人都能看懂的TensorFlow介绍
机器学习敲门砖:任何人都能看懂的TensorFlow介绍 http://www.jiqizhixin.com/article/1440
- 【pandas】pandas.DataFrame.rename()---重置索引名称
官方文档 github地址 例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pypl ...
- C#进阶之路(六):表达式进行类的赋值
好久没更新这个系列了,最近看.NET CORE源码的时候,发现他的依赖注入模块的很多地方用了表达式拼接实现的.比如如下代码 private Expression<Func<ServiceP ...
- Milking Time(DP)
个人心得:一开始自己找状态,是这么理解的,只要前面一个满足就等于此时的值加上d(n-1),否则就是不挖此时的比较d(n-1)和 d(n-2)+cost,不过仔细一想忽略了很多问题,你无法确定n-2和此 ...
- PHP数组编码转换
因为一些特殊字符的显示效果的原因不得不把习惯的utf-8工程改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换. 一些表单验证需要返回json数据,php的json_encode函数只 ...
- 前端HTML5介绍
1.为什么学习HTML5? 跨平台要求低 硬件要求低 flash之外的选择(尤其手机端) 2什么是HTML5? HTML是用来描述网页的一种语言 HTML指超文本标记语言 HTML不是变成语言,是一种 ...
- $timeout()定时器
非常不幸的一点是,人们似乎常常将AngularJS中的$timeOut()函数看做是一个内置的.无须在意的函数.但是,如果你忘记了$timeOut()的回调函数将会造成非常不好的影响,你可能会因此遇到 ...
- Python命令模块argparse学习笔记(一)
首先是关于-h/--help参数的设置 description:位于help信息前,可用于描述helpprog:描述help信息中程序的名称epilog:位于help信息后usage:描述程序的用途a ...
- CDM中遍历域及其约束条件、取值范围、引用它的项目
Option ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl '当前model'获取当前活动mod ...