2013-08-13 5 views
0

매개 변수 방법 확인을 위해 다음 컨트롤러를 사용하고 있습니다.ParameterMethodNameResolver에 대한 스프링 주석

@Controller 
@RequestMapping("/customer") 
public class CustomerController extends MultiActionController{ 

    @RequestMapping(params = "action=add") 
    public ModelAndView add(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 

     return new ModelAndView("CustomerPage", "msg","add() method"); 

    } 
.... 
.... 
} 

그러나, 이것은 다음과 같은 형식의 URL이 작동 할 수 있습니다 :.?

http://localhost:7001/begin-mvc/customer/?action=update 

을 나는/* HTM 행동이/고객을 위해 작동하도록하려면 어떻게해야 = .....

답변

0

난 당신이 다음을 수행 할 수 있다고 생각 :

@Controller 

@RequestMapping("/customer") 
public class CustomerController extends MultiActionController{ 

    @RequestMapping(value="{myHtmFile:.*\\.htm}", params = "action=add") 
    public ModelAndView add(HttpServletRequest request, 
     HttpServletResponse response, @PathVariable String myHtmFile) throws Exception { 

     return new ModelAndView("CustomerPage", "msg","add() method"); 

    } 
.... 
.... 
} 

이 패턴과 일치하는 정규식을 사용합니다. 정규 표현식은 약간의 작업이 필요할 수 있지만 일반적 아이디어입니다. 보너스로, @PathVariable을 사용하여 변수를 할당하는 방법을 보여줍니다. 그렇게하고 싶지 않다면, 그냥 {}에 정규 표현식을 포함시키고 @PathVariable을 삭제할 수 있다고 생각합니다.