JSP包括:用JSP'制作模板;因此,每页都包含重复的代码

JSP包括:用JSP'制作模板;因此,每页都包含重复的代码,jsp,templates,servlets,web,tags,Jsp,Templates,Servlets,Web,Tags,我是jsp的新手,因此开始在每个页面上使用静态重复代码对我的项目进行编码。例如,在每个页面的“我的头”部分,我检查是否有当前用户登录,如果有,则在“正文”部分使用他们的名称,如果没有,则重定向到登录页面 因此,在我的页面上,我希望看到以下内容: <%@ page language="java" import="com.ptm.UserBean" %> <!DOCTYPE html> <html lang="en"> <head&g

我是jsp的新手,因此开始在每个页面上使用静态重复代码对我的项目进行编码。例如,在每个页面的“我的头”部分,我检查是否有当前用户登录,如果有,则在“正文”部分使用他们的名称,如果没有,则重定向到登录页面

因此,在我的页面上,我希望看到以下内容:

<%@ page language="java" 
         import="com.ptm.UserBean"
 %> 
<!DOCTYPE html>
<html lang="en">
<head>
<title> this is my title </title>
<jsp:include page="head-section.jsp" >
</head>
<body >
<jsp:include page="header.jsp" >
</body>
</html>

这是我的头衔
在head-section.jsp中,我有一些导入jquery和css表的html,然后是一个依赖于索引页面上的UserBean导入的jsp代码块,然后是一些javascript

header.jsp include使用head-section.jsp代码块中设置的jsp变量

所以我的问题是,我包含的这些单独的jsp本身不起作用,但是当包含它们时,应该可以与页面一起工作,这减少了我重复代码的数量。这是最好的方法吗?我听说过标签文件,但我不知道如何实现它

提前感谢您的帮助

您可以使用指令:

<jsp:include page="..." />

对于静态资源,您应该使用:

<%@ include file="filename" %>

标记文件绝对是一个不错的选择。很好的是,您可以向它们发送参数以提高可重用性

以下是基本步骤(来自教程):假设您将标记存储在/WEB-INF/tags中(作为.tag文件),您需要在jsp中包含以下行

<%@ taglib tagdir="/WEB-INF/tags" prefix="h" %>
这意味着它需要一个名为name的参数。在那之后,你称之为

<h:response name="world"/>

这将扩展到

<h2>Hello, world!</h2>
你好,世界!

在输出中。

我相信这是正确的方法,但是现在我将使用静态包含以提高速度,稍后我将浏览您提供的教程,谢谢。请参阅will Hartung对的广泛而优秀的回答,以获取有关如何快速开始使用tagsYeah的信息我看到了这个答案,第一次通读的时候我很困惑,但我确信我只需要坐下来解决它,为答案干杯!
<h2>Hello, world!</h2>