JSP包括:用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
<%@ 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>