首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在url中具有jsp文件扩展名的Spring引导web应用程序

问在url中具有jsp文件扩展名的Spring引导web应用程序
EN

Stack Overflow用户
提问于 2022-07-04 14:16:19
回答 1查看 147关注 0票数 0

我们有一个遗留的web应用程序,它使用下面的url:

https://example.com/forms/forms.jsp

我们已经重写了遗留代码,以便使用带有url https://example.com/forms的spring引导web应用程序,而在url中没有.jsp扩展。

为了保持旧的url (这是业务需求),我遵循了这个Spring @PathVariable有一个点(.)被截断。但是,只有当url中有/ https://example.com/forms/forms.jsp/时,它才能工作。

我搜索了它,在堆栈溢出中找到了一些建议,并尝试了几种不同的方法。但不太好用。

最新情况:

我刚找到这篇文章在网址jsp上发表。。我从@GetMapping("/forms/{jspName:.+}")更新到@GetMapping(path = "/forms/{jspName:.+}")。这样就可以在if语句中检查pathVariable。但是,return语句不会像以前那样返回预期的forms.jsp文件;相反,它会给出404错误。

网址:http://localhost:8080/forms/forms.jsp

代码语言:javascript
复制
    @GetMapping(path = "/forms/{jspName:.+}")
    public String getForms(@PathVariable("jspName") String jspName) {
        if (jspName.equalsIgnoreCase("forms.jsp")) {
            log.debug("JSP file is {}", jspName);
            return "forms";
        }
        return "index";
    }

控制台:

代码语言:javascript
复制
[nio-8080-exec-1] c.n.e.c.EthicsEmailFormController        : JSP file is forms.jsp

404错误:

代码语言:javascript
复制
No webpage was found for the web address: http://localhost:8080/forms/forms.jsp
HTTP ERROR 404

application.properties -- forms.jsp存储在/WEB-INF/views/page/forms.jsp下。

代码语言:javascript
复制
spring.mvc.view.prefix=/WEB-INF/views/page/
spring.mvc.view.suffix=.jsp

供比较:

当url是https://example.com/forms/forms.jsp/时,当url的末尾有一个/时,下面就可以工作了。但是,现有的url (在需求中指定)不包含在url末尾的/。一定是https://example.com/forms/forms.jsp。

代码语言:javascript
复制
    @GetMapping("/forms/{jspName:.+}")
    public String getForms(@PathVariable("jspName") String jspName) {
        log.debug("Jsp file name = {} ", jspName);
        return "forms";
    }

我看到了一些建议是删除下面的依赖。在pom.xml中,我也没有下面的依赖项。

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

有什么建议吗?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 19:57:07

由于此应用程序仅用于培训,所以我将jsp文件移至webapp/forms.forms.jsp文件夹。这样,jsp文件可以直接从下面的url访问:

代码语言:javascript
复制
https://example.com/forms/forms.jsp

没有必要通过控制器。感谢我的朋友巴里的建议。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72858165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档