JSP,它的工作方式类似于Ruby/Rails/Erb中的yield,layout,content_for

bob*_*bob 10 ruby java jsp ruby-on-rails erb

我试图弄清楚如何最有效地重用JSP代码.我喜欢Rails/erb以这种方式工作的方式......有了yield,layout,content_for

例:

main_layout.erb.html

<html>
  <head><%= yield :head %></head>
  <body><%= yield %></body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用

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

<p>Hello, Rails!</p>
Run Code Online (Sandbox Code Playgroud)

在控制器中

layout "main_layout"
Run Code Online (Sandbox Code Playgroud)

使用JSP(不使用额外的框架),我可以得到的最接近的是什么?我知道JSP包含,但这与yield不同.有什么建议?

谢谢

Ste*_*tez 17

我不熟悉什么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>
Run Code Online (Sandbox Code Playgroud)

一个单独的JSP

<%@ taglib prefix="z" tagdir="/WEB-INF/tags" %>
<z:layout pageTitle="A simple page">
    <p>Hello, JSP!</p>
</z:layout>
Run Code Online (Sandbox Code Playgroud)

只需将layout.tag放在/ WEB-INF/tags目录中即可.您可以使用任何可用的前缀,我只使用"z"作为示例.

  • +50000用于向我展示一种方法来执行此操作,如ERB而无需使用Tiles. (6认同)
  • 你救了我的命. (2认同)