java - @Pathvariable 的 UrlMapping 通配符

标签 java spring web.xml url-pattern path-variables

我正在尝试在 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/

相关文章:

java - java中的XML解析: how to get info out of a tag adjacent to a tag with a certain value?

java - 两个 jar 之间的 Spring Boot 和 @ComponentScan

java 字符串转varbinary

java - 将 OffsetDateTime 与 Spring Boot 和 MongoDB 一起使用会导致 MappingException

spring - 如何将XML配置转换为Java配置?

java - web.xml 中的服务器端重定向?

javascript - 在 google appengine 网络应用程序中调用 JavaScript 函数时出现问题

java - 使用 Couchbase Java SDK 时,为什么我们不提供用户名并且密码不起作用?

java - 将Spring Boot与Elastic搜索集成的最佳方法

java - 事件中设置的 ServletContextListener 属性为 null