在jsp文件中创建java函数并从另一个jsp文件中调用它

时间:2013-09-16 08:31:18

标签: java jsp java-ee

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

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

例如:

A.jsp

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

B.jsp ....

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

有没有办法做到这一点?

4 个答案:

答案 0 :(得分:6)

是的,你可以而不是

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

使用

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

包含页面只会嵌入两个jsp代码,因此你没有获得该功能,但包含文件using指令将首先嵌入代码然后编译,这样你就可以得到你的功能。

你可以在这里找到差异

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

答案 1 :(得分:5)

您不应在Jsp文件中创建功能。 JSP仅用于查看目的。

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

答案 2 :(得分:0)

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

您可以使用&lt;%@ include%&gt;指令包含JSP片段

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

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

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

答案 3 :(得分:0)

以上评论均有效。但是,如果你必须这样做,我会通过将所有函数放在一个单独的文件中并将其调用methods.inc然后将其包含在jsp文件中来改进它,如

<%@include file="methods.inc" %>

这将有助于您清楚地了解其意图并使其看起来更清洁。