강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

ehtkstk0님의 프로필 이미지
ehtkstk0

작성한 질문수

컨트롤러에 한 가지 메소드로 여러 경로 설정 질문있습니다.

해결된 질문

작성

·

330

0

@Controller

@RequestMapping("/acc")

public class PrdAccController {

//서비스 클래스로 사용할 클래스들을 멤버변수로 정의하고 의존 자동 주입받도록 함

ProductsService pList, pPage, pInsert, pView, pDownload, pDelete, pCount, pUpdate;

OptionService oInsert, oView;

PageNav pageNav;

@Autowired

public void setpList(@Qualifier("pList") ProductsService pList) {this.pList = pList;}

@Autowired

public void setpCount(@Qualifier("pCount") ProductsService pCount) {this.pCount = pCount;}

@Autowired

public void setpPage(@Qualifier("pPage") ProductsService pPage, PageNav pageNav) {

this.pPage = pPage;

this.pageNav = pageNav;

}

@Autowired

public void setpInsert(@Qualifier("pInsert") ProductsService pInsert) {this.pInsert = pInsert;}

@Autowired

public void setpView(@Qualifier("pView") ProductsService pView) {this.pView = pView;}

@Autowired

public void setpDownload(@Qualifier("pDownload") ProductsService pDownload) {this.pDownload = pDownload;}

@Autowired

public void setpDelete(@Qualifier("pDelete") ProductsService pDelete) {this.pDelete = pDelete;}

@Autowired

public void setpUpdate(@Qualifier("pUpdate") ProductsService pUpdate) {this.pUpdate = pUpdate;}

@Autowired

public void setoInsert(@Qualifier("oInsert") OptionService oInsert) {this.oInsert = oInsert;}

@Autowired

public void setoView(@Qualifier("oView") OptionService oView) {this.oView = oView;}

//요청을 처리할 메소드들 정의

@RequestMapping("/bracelet")

@GetMapping("/p_list.do")

public String p_list_bracelet(String searchField, String searchWord,

String pageNum, String pageBlock, Model model) {

return "sds";

}

@RequestMapping("/earring")

@GetMapping("/p_list.do")

public String p_list_earring(String searchField, String searchWord,

String pageNum, String pageBlock, Model model) {

return "sds";

}

@RequestMapping("/necklace")

@GetMapping("/p_list.do")

public String p_list_necklace(String searchField, String searchWord,

String pageNum, String pageBlock, Model model) {

List<ProductsVo> boardList = pList.selectList(searchField, searchWord);

model.addAttribute("boardList", boardList);

int totRows = pCount.selectCount(searchField, searchWord);

PageNav pageNav = new PageNav(); // Assuming PageNav class is instantiated here

pageNav.setTotalRows(totRows);

pageNav = pPage.setPageNav(pageNav, pageNum, pageBlock);

model.addAttribute("pageNav", pageNav);

return "sds";

}

@RequestMapping("/ring")

@GetMapping("/p_list.do")

public String p_list_ring(String searchField, String searchWord,

String pageNum, String pageBlock, Model model) {

List<ProductsVo> boardList = pList.selectList(searchField, searchWord);

model.addAttribute("boardList", boardList);

int totRows = pCount.selectCount(searchField, searchWord);

PageNav pageNav = new PageNav(); // Assuming PageNav class is instantiated here

pageNav.setTotalRows(totRows);

pageNav = pPage.setPageNav(pageNav, pageNum, pageBlock);

model.addAttribute("pageNav", pageNav);

String viewPage = "p_list";

return viewPage;

}

컨트롤러 코드 입니다.

원래는 @Controller밑에

@RequestMapping("/acc/ring")

@RequestMapping("/acc/necklace")

@RequestMapping("/acc/earring")... 이런식으로 4개의 컨트롤러를 만들어서 사용했었는데

그냥 컨트롤러 하나로도 될 것 같아서 만들어봤는데

 

ring/p_list.do로 테스트중인데 클릭해서 들어가면

404에러 뜨면서 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. 라고 뜨네요.

주소창에는 http://localhost:9090/prjt/acc/ring/p_list.do로 잘 찾아가는 것 같은데 뭐가 문제일까요..

Spring 콘솔창에도 WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET /prjt/acc/ring/p_list.do 매핑이 안되있다고 떠요 그냥 컨트롤러 4개로 사용해야하나요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요. 컨트롤러에 한 가지 메소드로 여러 경로를 설정하는 방법에 관한 질문이시네요.

@RequestMapping 어노테이션을 사용하면 컨트롤러의 메소드에 URL 패턴을 지정할 수 있어요. 여러 개의 URL 패턴을 한 가지 메소드에 설정하려면 value 속성에 여러 경로를 배열 형태로 지정해주면 됩니다.

예를 들어, “/acc1”과 “/acc2” 두 가지 경로를 같은 메소드에 매핑하고 싶다면 아래와 같이 작성할 수 있어요.

@Controller
@RequestMapping(value = {"/acc1", "/acc2"})
public class PrdAccController {
    // 컨트롤러 메소드들...
}

위 예시처럼 value 속성에 배열 형태로 경로를 지정하면, “/acc1”과 “/acc2” 두 경로에 모두 해당하는 메소드가 호출됩니다.

다른 궁금한 점이 있으시면 또 문의해주세요. 수고하세요!

ehtkstk0님의 프로필 이미지
ehtkstk0

작성한 질문수

질문하기