보라코딩
스프링 UriComponentsBuilder를 이용한 링크 생성 본문
Criteria.java
package com.mystudy.domain;
import org.springframework.web.util.UriComponentsBuilder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class Criteria {
private int pageNum;
private int amount;
public Criteria() {
this(1, 10); // 기본이 1page에 10개
}
public Criteria(int pageNum, int amount) {
this.pageNum = pageNum;
this.amount = amount;
}
// 검색처리 관련 추가
private String type;
private String keyword;
public String[] getTypeArr() {
return type == null? new String[] {} : type.split("");
}
// UriComponentsBuilder
public String getListLink() {
UriComponentsBuilder builder = UriComponentsBuilder.fromPath("")
.queryParam("pageNum", this.pageNum)
.queryParam("amount", this.getAmount())
.queryParam("type", this.getType())
.queryParam("keyword", this.getKeyword());
return builder.toUriString();
}
}
BoardController.java
변경전
@PostMapping("/modify")
public String modify(BoardVO boardVO, RedirectAttributes rttr, @ModelAttribute("cri") Criteria cri) {
log.info("modify : " + boardVO);
if (service.modify(boardVO)) {
rttr.addFlashAttribute("result", "success");
}
rttr.addAttribute("pageNum", cri.getPageNum());
rttr.addAttribute("amount", cri.getAmount());
rttr.addAttribute("type", cri.getType());
rttr.addAttribute("keyword", cri.getKeyword());
return "redirect:/board/list";
}
변경후
@PostMapping("/modify")
public String modify(BoardVO boardVO, RedirectAttributes rttr, @ModelAttribute("cri") Criteria cri) {
log.info("modify : " + boardVO);
if (service.modify(boardVO)) {
rttr.addFlashAttribute("result", "success");
}
return "redirect:/board/list" + cri.getListLink();
}
modify와 remove는
위와 같이 변경해주면 훨씬 깔끔!!
'코딩 > Spring' 카테고리의 다른 글
스프링 시큐리티 커스텀 UserDetailsService 활용 (0) | 2023.05.17 |
---|---|
스프링 Ajax 쉬운 설명 (0) | 2023.05.17 |
스프링 검색처리 (0) | 2023.05.16 |
스프링 페이징처리 paging (0) | 2023.05.16 |
스프링 시큐리티 JDBC 간편인증/권한처리 (BCryptPasswordEncoder 클래스) (0) | 2023.05.15 |