【问题标题】:how to refer one jsp page on another jsp page?如何在另一个jsp页面上引用一个jsp页面?
【发布时间】:2017-06-12 16:27:46
【问题描述】:

我想在我的welcomePage.jsp 页面上引用其他jsp 页面-loginPage.jsp 和registerPage.jsp。我尝试使用这样的简单方法:

<head>
<title>${title}</title>
</head>
<body>  
  <jsp:include page="header.jsp"/>      
  <jsp:include page="_menu.jsp" />

  <h1>Welcome to the page!</h1>
  <a href="registerPage.jsp">Register</a>           
  <p>or</p>
  <a href="loginPage.jsp">Log In</a>
  <p>if you already have an account</p>

  <jsp:include page="footer.jsp"/>
</body>
</html>

但我不断收到 HTTP 状态 404 请求的资源不可用。

我也尝试过,但结果我引用的页面的内容也只是出现在这个welcomePage 上。虽然我需要它们只能通过链接访问。 所有提到的文件都位于 WEB-INF/pages 中。 这是我第一个使用 Spring MVC 的项目,因此欢迎任何帮助。

【问题讨论】:

  • 在 spring mvc URL 中可能会有所不同,因此请尝试使用 jstl 标签或使用 apache tile

标签: java spring jsp spring-mvc


【解决方案1】:

假设,在您的配置中,您已经设置了视图的位置,例如/WEB-INF/view/ 放置所有 .jsp 文件的位置 - loginpage.jsp, registerPage.jsp 等。现在,您可以通过 pageContext.servletContext.contextPath 轻松访问视图的位置,即 /WEB-INF/view/

//For example
href="${pageContext.servletContext.contextPath}/loginpage"

【讨论】:

    【解决方案2】:

    我建议你先去一个控制器,而不是在这个控制器中调用一个 ModelAndView。这也使 JSP 文件之间的关系保持清晰。

    要应用这个,你的控制器类应该是这样的:

    @Controller
    public class LoginPageController {
        @RequestMapping(value = "/login", method = RequestMethod.GET)
        public ModelAndView printLoginPage() {
            ModelAndView modelAndView = new ModelAndView("loginPage");
            return modelAndView;
        }
    }
    

    您还可以通过控制器方法将参数从 JSP 页面传递到另一个页面。

    【讨论】:

    • 谢谢!我会试试这个。
    • 不客气,希望能解决您的问题! @dark_matter88
    猜你喜欢
    • 2013-02-18
    • 2012-01-30
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多