【问题标题】:create java function in a jsp file and call it from another jsp file在一个jsp文件中创建java函数并从另一个jsp文件中调用它
【发布时间】:2013-09-20 08:11:11
【问题描述】:

我们通常在 java 类中创建方法,将它们导入到 jsp 文件中,然后在我们的 jsp 文件中调用这些方法。

但我们在客户端环境中工作,我们无权创建或修改 .java 文件。所以我们迫切需要在一个jsp文件中创建一个函数,并从另一个jsp文件中调用它。

例如:

A.jsp

.....
<jsp:include page="B.jsp"/>
....
<%= getName(); %>

B.jsp ....

<%!
public String getName()
{
 return "Hello";
}
>%

有没有办法做到这一点?

【问题讨论】:

  • 可以使用标签文件吗?

标签: java jsp jakarta-ee


【解决方案1】:

是的,你可以,而不是

<jsp:include page="B.jsp"/>

使用

<%@include file="B.jsp"%>

包含页面只会嵌入两个 jsp 代码,因此您不会获得该功能,但包含文件 using 指令将首先嵌入代码然后编译,因此您将获得您的功能。

你可以在这里找到不同之处

What is the difference between <jsp:include page = ... > and <%@ include file = ... >?

【讨论】:

  • 这对我有用。尽管这样做不是一个好习惯,但在我们访问 java 文件之前这将很有用。谢谢!
  • @Prathap 如果它解决了您的问题,您可以通过点击右上角的符号来接受答案。
  • 完成!。标记为这对我有用。
【解决方案2】:

您不应该在Jsp 文件中创建函数。 JSP 仅用于查看目的。

您可以在单独的java class 中编写函数,然后从您想要的任何Jsp 页面调用该类。

【讨论】:

  • 如果您也提及原因,这将对未来的用户有用
  • 原因是它们之间没有请求对象就无法通信。
  • @javaBeginner “JSP 仅用于查看目的” 是原因。
  • 很好的答案,但与问题不符! Prathap 说他就是做不到!
  • @javaBeginner 由于这些 cmets 不会为帖子增加任何价值,我建议做一个简单的 Stackoverflow 或 Google 搜索来找出为什么现在不建议使用 scriptlet。 Scriptlet 仍然存在,因为它们是在标记库之前控制 JSP 流的唯一可能性。
【解决方案3】:

以上 cmets 均有效。不要这样做。这是一个糟糕的设计。但是,如果您知道任何可能的方法,它可以使用 JSP 的静态包含。

您可以使用 指令来包含 JSP 片段

<%@include file="B.jsp" %> 

在 A.jsp 中

好的设计是让您在 java 中创建一个类并在其中编写所有方法,将其包含在您的所有 JSP 中,并使用这些方法。

其他人对类似的问题感到困惑,例如如何将一个 JSP/HTML 中的 JS 函数调用到另一个 JSP/HTML,答案保持不变。好的设计是使用 .js 文件来编写所有 JS 方法。

【讨论】:

    【解决方案4】:

    以上 cmets 均有效。但是,如果您必须这样做,我会通过将所有函数放在一个单独的文件中并将其命名为 methods.inc 然后将其包含在 jsp 文件中,例如

    &lt;%@include file="methods.inc" %&gt;

    这将帮助您清楚地了解意图并看起来更清晰。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-30
      • 2015-09-27
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      相关资源
      最近更新 更多