我们通常在java类中创建方法,将它们导入jsp文件并在我们的jsp文件中调用这些方法。
但我们在客户端环境中工作,我们无权创建或修改.java文件。因此,我们迫切需要在jsp文件中创建一个函数,并从另一个jsp文件中调用它。
例如:
A.jsp
.....
<jsp:include page="B.jsp"/>
....
<%= getName(); %>
B.jsp ....
<%!
public String getName()
{
return "Hello";
}
>%
有没有办法做到这一点?
答案 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" %>
好的设计是你在java中创建一个Class并在其中编写所有方法,将它包含在所有你的JSP中,并使用这些方法。
其他人对类似问题感到困惑,比如如何将JSP / HTML中的JS函数调用到另一个JSP / HTML,答案仍然相同。好的设计是使用.js文件来编写所有JS方法。
答案 3 :(得分:0)
以上评论均有效。但是,如果你必须这样做,我会通过将所有函数放在一个单独的文件中并将其调用methods.inc
然后将其包含在jsp文件中来改进它,如
<%@include file="methods.inc" %>
这将有助于您清楚地了解其意图并使其看起来更清洁。