작성
·
624
·
수정됨
0
안녕하세요 토비님
제가 자주 질문 드려서 싫어 하실거 같네요..
https://www.url01.urlcom/충청도 or 제주도 or 인제군 or ...(지자체 정보 170개 )
이런식으로 ~Controller.java
170개의 경우를 겟매핑이나 포스트매핑(보안문제로)
해야 합니다
@GetMapping({ '/충청도', '/제주도', or '/인제군' or ......이런식으로 170 개의 지자체 })
아래 부분을 위해서 수기 타이핑 문자열이 아닌
db에서 불러와서 배열로 넣을려고 하니 되지 않아서
제가 잘못 생각하고 있는지 여쭤봅니다
변수 = 서비스.지자체리스트; //170개 db에서 꺼내옴
@GetMapping({ value = 변수 }) ==> 이거 원래 안되는 것일 까요?
계속 스택오버플로우나 구글링 찾아봐도 제가
답을 못 찾았습니다
혹시 원래 되는 기능 이라면 , 제가 어디 문서를 찾아 봤었어야 할까요?
( 예를 들면 토비님 같은 경우
스프링 공식 문서 샘플 설명 사이트 나, 자주 방문하는 이 사이트 찾아 보면 금방 답이 나왔을 것이다
이런 부분 알려 주시면 감사합니다.. )
답변 1
1
매핑 목록을 db에서 가져오는 거 안 됩니다.
대신 충청도 이런게 들어가는 자리를 그 용도로만 고정한다면 @PathVariable을 쓰면 됩니다. 관련 자료를 찾아서 공부하세요.
@GetMapping("/ex/foos/{id}")
public String getFoosBySimplePathWithPathVariable(@PathVariable("id") long id) {
이러면 url의 {id} 자리에 있는 문자가 id 파라미터로 매핑됩니다. 충청도 같은 걸 이런 식으로 받게 하면 됩니다.
다만 이러면 /충청도 뿐 아니라 /main.do 도 다 이 컨트롤러로 매핑됩니다. url pattern이 다르게 중간에 뭔가 더 넣거나 다른 컨트롤러 매핑을 다르게 바꿔줘야 합니다.
이 방식을 못 쓰면 100개든 200개든 코드로 매핑에 다 걸어줘야 합니다. 갯수 제한이 있는지는 모르겠군요.
감사합니다 토비님~
공무원분들이 하위 폴더
깔지말고 루트에 하라고
강조하니 어쩔수 없네요
간혹 구글링 해보먼
Getmapping multiple values
로 찾아보니
Getmapping(value=Array('{arr}' 이런 코드들도 보이더라구요 이건 스프링+자바 못 쓰는 문법이겠죠
알려주셔서 감사합니다 행복하고 즐거운 주말 보내세요!!