小编典典

JSP,它可以像Ruby / Rails / Erb中的yield,layout,content_for一样工作吗

jsp

我试图找出如何最有效地重用JSP代码。我喜欢Rails / erb的工作方式…具有yield,layout,content_for

例:

main_layout.erb.html

<html>
  <head><%= yield :head %></head>
  <body><%= yield %></body>
</html>

采用

<% content_for :head do %>
<title>A simple page</title>
<% end %>

<p>Hello, Rails!</p>

在控制器中

layout "main_layout"

使用JSP(不使用额外的框架),最接近我的是什么?我知道JSP include,但这与收益并不完全相同。有什么建议么?

谢谢


阅读 240

收藏
2020-06-08

共1个答案

小编典典

我不熟悉的东西yieldcontent_for提供,但JSP标记文件让你一个更可靠的方法模板页面比JSP包括。

例:

layout.tag

<%@ tag body-content="scriptless" %>
<%@ attribute name="pageTitle" required="true" type="java.lang.String" %>

<html>
<head>
    <title>${pageTitle}</title>
</head>
<body>
    <jsp:doBody/>
</body>
</html>

单个JSP

<%@ taglib prefix="z" tagdir="/WEB-INF/tags" %>
<z:layout pageTitle="A simple page">
    <p>Hello, JSP!</p>
</z:layout>

只需将您的layout.tag放在/ WEB-INF / tags目录中即可。您可以使用任何想要的前缀,我只是在示例中使用“ z”。

2020-06-08