その他の地域情報の削除
主な活動領域
@Override
public String toString() {
return String.format("%s(%s)/%s", city, localNameOfCity, province);
}
英語名(ハングル名)/省がこのように見えるようにtoString()を実施します.Q. toString()?
オブジェクトが持つ情報または値を文字列に変換する方法.
SettingsController.java
@GetMapping(ZONES)
public String updateZonesForm(@CurrentAccount Account account, Model model) throws JsonProcessingException {
model.addAttribute(account);
Set<Zone> zones = accountService.getZones(account);
model.addAttribute("zones", zones.stream().map(Zone::toString).collect(Collectors.toList()));
List<String> allZones = zoneRepository.findAll().stream().map(Zone::toString).collect(Collectors.toList());
model.addAttribute("whitelist", objectMapper.writeValueAsString(allZones));
return SETTINGS + ZONES;
}
コントローラはtagと非常に似ています.Accoutを追加し、getZones()を使用してaccountが所有するすべての情報を実行します.
SettingsService.java
public Set<Zone> getZones(Account account) {
Optional<Account> byId = accountRepository.findById(account.getId());
return byId.orElseThrow().getZones();
}
public void addZone(Account account, Zone zone) {
Optional<Account> byId = accountRepository.findById(account.getId());
byId.ifPresent(a -> a.getZones().add(zone));
}
public void removeZone(Account account, Zone zone) {
Optional<Account> byId = accountRepository.findById(account.getId());
byId.ifPresent(a -> a.getZones().remove(zone));
}
ゾーン情報をすべてゾーン:toString、文字列toStringに送信します.だからこうなったのです.
whitelistはすべてのデータをzone Repositoryに読み込みtoStringにインポートしwithelistにします
zones.html
<div id="whitelist" th:text="${whitelist}" hidden></div>
<input id="tags" type="text" name="tags" th:value="${#strings.listJoin(zones, ',')}"
class="tagify-outside" aria-describedby="tagHelp"/>
あなたが持っている情報${#strings.listJoin(領域,")}list join!😊 function onAdd(e) {
tagRequest("/add", e.detail.data.value);
}
function onRemove(e) {
tagRequest("/remove", e.detail.data.value);
}
addまたはremove ajaxリクエストが発行された場合、SettingsControllerは処理します. @PostMapping(ZONES + "/add")
@ResponseBody
public ResponseEntity addZone(@CurrentAccount Account account, @RequestBody ZoneForm zoneForm) {
Zone zone = zoneRepository.findByCityAndProvince(zoneForm.getCityName(), zoneForm.getProvinceName());
if (zone == null) {
return ResponseEntity.badRequest().build();
}
accountService.addZone(account, zone);
return ResponseEntity.ok().build();
}
まずZONE名に対応するデータがあるかどうかをチェックし、ない場合はbadRequest()応答を送信します.既存の領域情報自動完了リストからのみ選択できます。
Reference
この問題について(その他の地域情報の削除), 我々は、より多くの情報をここで見つけました https://velog.io/@leyuri/지역-정보-추가-삭제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol