【问题标题】:How to remove the .action/.html/(.any) suffix extension in Spring MVC如何在 Spring MVC 中删除 .action/.html/(.any) 后缀扩展
【发布时间】:2014-02-25 00:21:34
【问题描述】:

有什么方法可以删除 Spring MVC 中的 .action/.html/(.any) 扩展,例如 Struts2

我正在地址栏中寻找一个干净的 URL。

点赞:http://localhost:8080/SpringProject/Dashboard
而不是:http://localhost:8080/SpringProject/Dashboard.html

我找到的解决方案:

在我的 spring-servlet.xml 文件中添加了两行

<mvc:default-servlet-handler/>
<mvc:annotation-driven />

并修改我的 web.xml

 <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

就是这样

我也在我的博客javalink2me.blogspot发布了这个答案

【问题讨论】:

  • 删除它是什么意思?在哪里?
  • @SotiriosDelimanolis 我更新了我的问题。请注意
  • 将您的 @RequestMapping 值从 /something.html 更改为 /something
  • &lt;url-pattern&gt;/&lt;/url-pattern&gt; 怎么样?可能重复:Does Spring MVC support extension-less URLs?
  • 非常感谢@ADTC。这就是我想要的

标签: java spring spring-mvc spring-security spring-webflow


【解决方案1】:

Spring 默认提供了对@Controller 和@RequestMapping 的支持。但是,通过启用 mvc:annotation-driven,您可以获得处理映射到带注释控制器方法的请求的支持,例如声明性验证、格式化和转换服务。

在 servlet-config.xml 中

<mvc:default-servlet-handler/> <mvc:annotation-driven />

在 WEB.xml 中

<servlet-mapping>
        <servlet-name>home</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

【讨论】:

    【解决方案2】:

    你只需要用你想要的路径配置你的控制器。

    @Controller
    public class MyController {
    
        @Inject
        private MyService myService;
    
        @RequestMapping("/mypath")
        public String showPathWithouteExtension(Model model) {
    
            return "myjspfile";
        }
    
    }
    

    使用这样的控制器,您只需要调用即可。

    http://server:port/myapp/mypath

    和繁荣,没有扩展。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 2017-03-02
      • 2017-02-27
      • 2014-01-15
      • 2011-05-27
      • 2016-07-11
      相关资源
      最近更新 更多