当前位置: 首页 > 面试题库 >

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

璩珂
2023-03-14
问题内容

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

谢谢


问题答案:

我不熟悉的东西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”。



 类似资料:
  • 我一直在尝试访问Angular应用程序中的sqwiggle API,并使用Postman进行测试。一切似乎都很顺利。我定义了一个BasicAuth头,对消息endpoint执行GET请求,得到了一个很好的响应。这些是请求头(来自邮递员): 现在在我的AngularJS应用程序中,我想做同样的事情: 但这会导致以下请求标头: 鉴于Postman使用JS从API获取数据,在AngularJS中也应该是

  • JSP Layout 是一个用来实现 JSP 布局支持的简单示例项目。该项目只需要一个 Servlet 类,一些配置即可。下载的压缩包中包含一个完整的项目,可直接导入 Eclipse 进行编译。运行时只需要在 Tomcat 或者其他应用服务器上配置一个web应用,并将路径指向解压后的webapp目录即可。例如: <Context path="" docBase="D:\WORKDIR\JSP La

  • cPanel的这个接口允许您创建和安装Ruby on Rails应用程序。 如果您开发了Ruby on Rails应用程序,则可以使用此界面将其部署到服务器。 要创建Ruby on Rails应用程序,请按照下列步骤操作 - Step 1 - 单击cPanel Home的Software Section下的Ruby on Rails。 Step 2 - 在Ruby on Rails接口中,您将找到

  • 我的JS应用程序正在使用wiremock来模拟后端调用。是否可以创建这样的Wiremock定义来创建回显服务(响应的正文JSON内容应该与请求的正文JSON内容相同)。

  • 我已经尝试了一段时间让smoothScrollToPositionFromTop()工作,但它并不总是滚动到正确的位置。 我有一个ListView(有10个条目)的布局,边上有10个按钮,所以我可以滚动到列表中的每个条目。通常,当我向后或向前滚动一个位置时,效果很好,但是当我试图向后或向前滚动超过3个位置时,ListView并不完全在所选位置结束。当它失败时,它通常会减少0.5到1.5个项目,并且

  • 问题内容: 我毫不费力地使用JSON对象和jQuery-rails(jQuery库以及一个特殊的rails.js文件)进行Rails(3)的典型AJAX调用。 但是,在一个控制器中,我想在AJAX调用后在erb模板(create.js.erb)中返回一些JSON。 我已经尝试了控制器中所有事物的组合(@ object.to_json,’[{“ content”:“ hello world”}]’‘

  • 我正在使用一个功能组件,我需要能够使用componentDidMount()。我在网上发现,通过react钩子,可以将useEffect()用作功能组件中的componentDidMount()。然而,这并不像我想象的那样有效。我原以为在页面加载时会触发,但事实并非如此。有人知道如何让useEffect表现得像componentDidMount吗? 我试着只是简单地这样做,但它创建了一个无限循环,

  • 问题内容: 所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有特定键值的所有属性,然后在值不为空的情况下将它们插入模板。这是我的代码: 属性: 模板: 输出(希望): 我的红宝石并不是最好的,因为我只是从所有这些东西开始,但是我找不到这种情况的任何例子。任何帮助将是巨大的,谢谢。 问题答案: 您可能的意思是: 遍历a时,将遍历其键值对。因此对于第一次迭代,将是,并且将是(不是…)。 接下