我正在尝试在 Web.xml 中使用通配符定义 @PathVariable
以进行 url 映射。
除非我在映射中给出完整路径,否则它似乎不起作用。
这是我的代码。
TrackingController .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>
通配符 - 不起作用
<servlet-name>appServlet</servlet-name>
<url-pattern>/tracking/*</url-pattern>
</servlet-mapping>
带有通配符的预期结果是它会根据提供的@Pathvariable
重定向到Url
但是它会抛出404错误
最佳答案
您需要在路径 url 中指定双 (*) 来匹配任何字符串。 这是示例。
<servlet-name>appServlet</servlet-name>
<url-pattern>/tracking/**</url-pattern>
</servlet-mapping>
关于java - @Pathvariable 的 UrlMapping 通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56963816/