海鸥1202 2017-04-23 03:41 采纳率: 0%
浏览 2354

Maven多模块开发,静态资源问题

大家好,最近在进行maven+springmvc项目开发的时候,遇到这样的问题,
项目只有一个War包,其中包含多个子模块,现将前段模块为web,后端管理模块为nweb,
两者采用不通的servlet,配置如下:


WebDispatcherServlet
/web/*

 <servlet-mapping>
<servlet-name>MwebDispatcherServlet</servlet-name>
<url-pattern>/mweb/*</url-pattern>

对于这样的配置,根据spring的匹配原则,对于请求静态资源都是拦截的,通过如下方式:
<mvc:resources location="/assets/js/" mapping="/main/assets/js/**" />
可以匹配的,但项目中mapping中的请求url中的main是可变的,该如何匹配,求大神们帮助,指条明路,谢谢了。
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 19:09
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可以通过使用Spring MVC的@Controller注解和@RequestMapping注解来解决。这样可以在控制器类上定义一个或多个映射点(路径),这些映射点将被用于匹配和处理请求。

    以下是一个示例:

    @Controller
    public class MyController {
    
        @RequestMapping("/mweb")
        public String mweb() {
            return "mweb";
        }
    
        @RequestMapping("/mweb/*")
        public String mweb(String path) {
            // 处理mweb页面的内容
            return "mweb";
        }
    }
    

    在这个例子中,我们定义了一个名为MyController的控制器,并在其中定义了两个方法:mweb()mweb(String path)

    mweb()方法返回一个字符串,表示当前控制器处理的是mweb页面。这只是一个示例,实际应用中你需要根据你的需求来决定如何处理这个方法的返回值。

    mweb(String path)方法接受一个字符串参数path,并可以根据这个参数来处理不同的内容。例如,如果path以"/mweb/"开始,那么它就会调用mweb()方法;否则,它会尝试找到与path匹配的其他控制器的方法。这将确保所有的请求都能正确地路由到相应的控制器。

    注意,如果你想要在一个控制器中处理多个URL,请确保每个URL都有对应的控制器方法。此外,你可能还需要考虑是否应该在每个URL后面添加一个反斜杠\,以防止不必要的请求重定向。

    希望这个答案对你有帮助!

    评论

报告相同问题?