해결된 질문
작성
·
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” 두 경로에 모두 해당하는 메소드가 호출됩니다.
다른 궁금한 점이 있으시면 또 문의해주세요. 수고하세요!