Java @Pathvariable的UrlMapping通配符

Java @Pathvariable的UrlMapping通配符,java,spring,web.xml,url-pattern,path-variables,Java,Spring,Web.xml,Url Pattern,Path Variables,我试图在Web.xml中使用通配符定义@PathVariable,以进行url映射。 除非我在映射中给出完整路径,否则它似乎不起作用。 这是我的密码 java-伪代码 @Controller @RequestMapping(value = "/tracking") public class JobController implements Runnable { @RequestMapping(value = "/{countrycode}/{urlID}", method = Req

我试图在Web.xml中使用通配符定义
@PathVariable
,以进行url映射。 除非我在映射中给出完整路径,否则它似乎不起作用。 这是我的密码

java-伪代码

@Controller
@RequestMapping(value = "/tracking")
public class JobController implements Runnable {


    @RequestMapping(value = "/{countrycode}/{urlID}", method = RequestMethod.GET)
    @ResponseBody

    public RedirectView refreshcache(@PathVariable("countrycode") String countrycode, @PathVariable("urlID") String urlID){

         String Oauthurl="";
         System.out.println(countrycode);
         System.out.println(urlID);
         if (countrycode.equals("India"))
         {
             Oauthurl ="https://www.google.co.in/";
         }
         else
         {
             Oauthurl ="https://www.google.com/";
         }
         RedirectView redirectView = new RedirectView();
            redirectView.setUrl(Oauthurl);
            return redirectView;


        }
我已经尝试过的是放置完整路径和带有通配符的路径 在web.xml中

完整路径-有效

<servlet-name>appServlet</servlet-name>
        <url-pattern>/tracking/India/1</url-pattern>
</servlet-mapping>
appServlet
/跟踪/印度/1
通配符-不起作用

<servlet-name>appServlet</servlet-name>
        <url-pattern>/tracking/*</url-pattern>
</servlet-mapping>
appServlet
/追踪/*
通配符的预期结果是,它将根据提供的
@Pathvariable
重定向到Url


但是,它会抛出404错误,您需要在路径url中指定double(*)以匹配任何字符串。 这是一个例子


<servlet-name>appServlet</servlet-name>
        <url-pattern>/tracking/**</url-pattern>
</servlet-mapping>

appServlet
/追踪/**

不要通过
web.xml
使用映射。它已经由
@RequestMapping
完成

以下代码应该可以工作:

@Controller
@RequestMapping(value = "/tracking")
public class JobController {


    @GetMapping("/{countryCode}/{urlID}")//removed @ResponseBody
    public RedirectView refreshCache(@PathVariable String countryCode, @PathVariable String urlID) {
        String oauthUrl;

        System.out.println(countryCode);
        System.out.println(urlID);

        if ("India".equalsIgnoreCase(countryCode)) {//Avoid NPE
            oauthUrl = "https://www.google.co.in/";
        } else {
            oauthUrl = "https://www.google.com/";
        }
        return new RedirectView(oauthUrl);
    }
}

如果没有,请检查配置。Spring找不到您的控制器

谢谢你的反馈。。不幸的是,它仍然抛出错误您现在面临的错误是什么?您可以通过github通过简单的示例共享代码。当您已经使用
@RequestMapping
映射URL时,为什么要尝试将URL与
web.xml
进行双重映射。是否使用组件扫描?你能展示spring的配置吗?