El中呼叫靜態方法

2022-09-12 11:00:36 字數 2207 閱讀 8706

最近在專案中遇到需要呼叫靜態方法的問題,形如:

<

c:foreach

items

="beans"

var="bean"

>

<

p>總數:$

p>

c:foreach

>

不過上面的**不能通過編譯,只能尋求其他辦法。經過查閱各種文件,找到了3種解決辦法。

1,直接為bean建立乙個get方法

public

double gettotal()

然後在el中直接使用:

總數:$

2,將tools#gettotal建立為乙個el function。首先建立乙個/web-inf/my.tld檔案:

<?

xml version="1.0" encoding="utf-8"

?>

<

taglib

xmlns

=""xmlns:xsi

=""xsi:schemalocation

=" /web-jsptaglibrary_2_1.xsd"

version

="2.1"

>

<

display-name

>custom functions

display-name

>

<

tlib-version

>1.0

tlib-version

>

my <

uri>

uri>

<

function

>

<

name

>calculatetotal

name

>

<

function-class

>com.example.tools

function-class

>

<

function-signature

>double gettotal(double)

function-signature

>

function

>

taglib

>

然後在web.xml中定義uri和tld檔案路徑的對映:

<

jsp-config

>

<

taglib

>

<

taglib-uri

>

taglib-uri

>

<

taglib-location

>/web-inf/my.tld

taglib-location

>

taglib

>

jsp-config

>

接著在要使用的jsp頭部引入該taglib:

<%

@ taglib uri

=""prefix="

my"%>

其中uri對應web.xml中的taglib-uri。最後就可以在el中使用該函式了:

<

c:foreach

items

="beans"

var="bean"

>

<

p>總數:$

p>

c:foreach

>

3,使用spring的spel:

jsp頭部引入:

<%

@taglib prefix="

s"uri=

""%>

使用:

<

c:foreach

items

="beans"

var="bean"

>

<

s:eval

expression

="t(com.example.tools).gettotal(bean.nums)"

var="total"

/>

<

p>總數:$

p>

c:foreach

>

物件呼叫靜態方法 C 中靜態成員 靜態方法 靜態類

平時在用c 做開發的朋友都知道,不論是靜態成員還是靜態方法還是靜態類都是用static關鍵字來修飾。也就是說只要看到了static,那麼它後面的東西就是靜態!在c 中,靜態成員或者靜態方法是屬於類的,不是屬於物件。假如我們有乙個類myclass,需要例項化這個 類,就應該這麼做 myclass my...

靜態方法中呼叫注入的方法

component public class resourcepermission public static void ispermission projectresourcepermissionenum resourcepermissionenum,long projectid postcons...

PHP中如何在靜態方法中呼叫非靜態方法?

class test public static function action 暴龍神 2017 10 13 提問 預設排序 時間排序 2 個回答 答案對人有幫助,有參考價值3答案沒幫助,是錯誤的答案,答非所問 已採納可以使用 self func class test public static ...