通常のjavaなら同じパッケージのpublicのメソッドを、オブジェクト.メソッド()で、呼び出すように、メソッドを使用するには「オブジェクト」にあたる部分が必要ですよね。
JSPの場合、呼ばれるメソッドがメンバとなっている、そのクラスやオブジェクトは一体どうやってあらわされるのでしょうか。
インクルードでファイルを分けてくしかないような、、
testJsp.jsp
<%@ page contentType="text/html;charset=Shift_JIS" %> <html> <head> <title>テスト</title> </head> <body> <%! public int getTotal(int num){ int sum = 0; for (int i = 1 ; i <= num ; i++){ sum += i; } return sum; } %> </body> </html>
testJsp2.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>JAVA Server Page(JSP) Test</TITLE> </HEAD> <BODY> <%@ include file="testJsp.jsp"%> <% out.println(getTotal(10)); %> </BODY> </HTML>
JSPは最終的にJavaのバイナリにコンパイルされるので,プラットフォーム決め打ちであれば出来なくはないでしょう。ただ,お世辞にも褒められた方法ではないので,asideさんの紹介されているincludeを使うか,外部クラスを起こしてimportした方が良いでしょう。
ありがとうございます。
> お世辞にも褒められた方法ではない
> includeを使うか,外部クラスを起こしてimport
なるほど、jspページのメソッドを外部から使うのは常套手段ではないのですね。勉強になります。
ありがとうございます。
bean化すると、今回の目的が果たせるのですね。
java beansは勉強できていないので、今後習得していきたいと思います。
みなさん、ありがとうございました。
ありがとうございます。
うまく動作しました。
includeを使えば解決するんですね。勉強になります。