0

我有代表组件的 JPS。我想让这些组件 JSP 在执行 JSP 的内容之前和之后编写一些 HTML。

组件.jsp

<@page session="false">
<%= "hello " + "world" %>

当这个 JSP/servlet 被渲染时,我希望它渲染:

<div class="component">
hello world
</div>

我希望能够创建各种“包装器”,并且根据 JSP,包括用正确的内容包装 JSP 的内容。如果我想在路上更改/增加包装器,我只想在一个地方进行(可能是 100 个组件)。

我可以用 <@page extends="..."> 做点什么吗?

谢谢

4

2 回答 2

1

你要的是什么名字:标签文件。在 JSP 2.0 上引入

通过这种方法,您可以使用 jsp 编写 JSP 标签,因此您需要创建一个名为 的文件夹WEB-INF/tags,并在此文件夹中创建一个“普通”jsp。

您要创建的标签需要具有以下启动指令: <%@tag description="tag description" %>以表明这是一个标签。

要使用它,您需要使用以下说明引用要使用的标签:<%@ taglib tagdir="/WEB-INF/tags" prefix="custom"%>

因此,您可以执行以下操作:WEB-INF/tags/myTag.tag


<%@tag description="hello tag" %>
<%@attribute name="name" required="false" type="java.lang.String"%>
<html><head></head><body>
<h1>Hello <%=name%></h1>
<jsp:doBody />
</body>

索引.jsp


<%@ taglib tagdir="/WEB-INF/tags" prefix="custom"%>
<custom:myTag name="My Name">this is the content</custom:myTag>

结果将是一页打印

<html><head></head><body>
<h1>Hello My Name</h1>
this is the content
</body>
于 2012-06-30T20:42:10.620 回答
0

这是一个可怕的想法。带有 scriptlet 的 JSP 是 1998 年的技术。 没有人再写这些了。

如果必须编写 JSP,最好使用 JSTL 和 SiteMesh 或 Tiles 之类的东西来合成页面。

一个更好的想法是开始朝着可以让您轻松地在 Web 应用程序旁边运行移动解决方案的方向发展。服务和模板将是我对 JSP 的偏好。

于 2012-06-30T20:29:30.983 回答