如何在另一个jsp页面上引用一个jsp页面?

时间:2017-06-12 16:27:46

标签: java spring jsp spring-mvc

我希望在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的项目,所以欢迎任何帮助。

2 个答案:

答案 0 :(得分:2)

Suppose, in your configuration, you have set the location of views e.g. /WEB-INF/view/ where you put all of your .jsp files - loginpage.jsp, registerPage.jsp etc. Now, you can simply access the location of view i.e. /WEB-INF/view/ via pageContext.servletContext.contextPath.

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

答案 1 :(得分:0)

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

要应用此功能,您的控制器类应如下所示:

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

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