有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringMVC导航路径

在spring mvc中尝试进行一些简单的导航时,我遇到了一个问题。我有一个导航控制器:

@Controller
@RequestMapping("/secure")
public class NavigationController {

    @RequestMapping("/operation")
    public String processOperationPage() {
        //Some logic goes here
        return "corpus/operation";
    }

    @RequestMapping("/configuration")
    public String processConfigurationPage() {
        //Some logic goes here
        return "corpus/configuration";
    }

}

下面是我联系该控制器的链接:

<a href="secure/operation.htm">Operation</a>
<a href="secure/configuration.htm">Configuration</a>

第一次点击链接时,一切正常。在浏览器中,我看到了预期的正常路径。例如:http://localhost/obia/secure/configuration.htm。但如果我在这一页,从这一页我想进入操作。htm当我点击操作链接时,路径如下:http://localhost/obia/secure/secure/operation.htm

secure出现两次。我怎样才能解决这个问题


共 (4) 个答案

  1. # 1 楼答案

    你的链接是相对的。在它们前面加一条斜线可以解决这个问题

  2. # 2 楼答案

    上面的响应者在使用c:url生成绝对url时有一个正确答案。然而,在某些情况下,由于防火墙配置,JSTL无法正确地知道URL库。在这种情况下,您可以使用相对URL,但它必须知道您从哪里开始。i、 e.在obia/secure/operation页面上。htm,url应该是/安全/配置。htm,或者只是配置。htm。圆点的意思是向上移动一层

  3. # 3 楼答案

    根据当前页面,更改相对URL或计算相对URL。例如,您可以将URL更改为基于主机:

     
           <a href="/obia/secure/operation.htm">Operation</a>
           <a href="/obia/secure/configuration.htm">Configuration</a>
        
  4. # 4 楼答案

    如果您使用的是JSP,请改用JSTL:

    <c:url value="/secure/operation.htm" />
    

    记住在JSP文件中包含taglib:

    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    

    通过使用JSTL,您可以避免在应用程序部署到不同的上下文(如http://host/http://host/myapp)后更改URL

    第一个将为您生成http://host/secure/operation.htm,第二个将为您生成http://host/myapp/secure/operation.htm