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

发布于 2024-10-05 23:17:55 字数 587 浏览 2 评论 0原文

我试图找出如何最有效地重用 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 但这与yield 并不完全相同。 有什么建议吗?

谢谢

I am trying to figure out how to most effectively reuse JSP code.
I love the way Rails/erb works in that way ... with yield, layout, content_for

Example:

main_layout.erb.html

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

use

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

<p>Hello, Rails!</p>

in controller

layout "main_layout"

What is the closest I can get to this with JSP (without using extra frameworks)? I know about JSP include but that's not really the same as yield.
Any suggestions?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黯淡〆 2024-10-12 23:17:56

我不熟悉 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”作为示例。

I'm not familiar with what yield and content_for provide, but JSP tag files allow you a more robust way to template pages than JSP includes.

Example:

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>

An individual JSP

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

Just place your layout.tag in the /WEB-INF/tags directory. You can use any available prefix you want, I just used "z" for the example.

金橙橙 2024-10-12 23:17:56

虽然您提到不希望在普通 jsp 之上使用任何框架,但 布局 功能href="http://stripesframework.org" rel="nofollow">Stripes Framework 几乎完全符合您的要求。

While you mentioned wanting no frameworks on top of stock jsp, the Layout functionality of the Stripes Framework does pretty much exactly what you're asking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文