Java @Pathvariable的UrlMapping通配符
我试图在Web.xml中使用通配符定义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
@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的配置吗?