Reg*_*ser 2 java jsp jspinclude
我正在寻找帮助/建议,使用相当于PHP include + switch函数创建简单的JSP网站.
目标是我希望能够在一个主页面中的多个JSP包含页面之间切换.
上面"函数"最简单的形式是什么?
那里有你的<jsp:include>.您可以使用EL指定page属性.
创建一个/WEB-INF/main.jsp类似于的文件:
<!doctype html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="${page}" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以${page}借助页面控制器servlet 来控制该值.就像是:
public class PageController extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("page", "/WEB-INF" + request.getPathInfo());
request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);
}
}
Run Code Online (Sandbox Code Playgroud)
将此servlet映射web.xml如下:
<servlet>
<servlet-name>pageController</servlet-name>
<servlet-class>com.example.PageController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>pageController</servlet-name>
<url-pattern>/page/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
通过这种方式可以访问servlet http://example.com/context/page/foo.jsp,在这个URL示例中,它将/foo.jsp从pathinfo 获取,从而page使用该值设置属性,/WEB-INF/foo.jsp以便它在EL中可用,${page}以便jsp:include知道它应该包含什么.不需要讨厌的scriptlet或switch语句.
在/WEB-INF/foo.jsp你可以写下HTML作为,如果它被放置在里面的HTML <body>标签.
请注意,放置JSP文件/WEB-INF,这样做是为了防止URL直接访问,以便用户无需通过页面控制器就可以请求它们,例如http://example.com/context/foo.jsp只返回部分内容(即将 -包括页面).
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |