JSP/EL에서 정적 메서드 호출
JSP에서는 계산을 수행하거나 Java 클래스의 정적 메서드에 액세스해야 하는 경우가 많습니다. 그러나 EL(Expression Language)에서 정적 메서드를 직접 호출하는 것은 지원되지 않습니다.
시나리오:
"balance" 속성이 있는 테이블이 있고 계산하려고 합니다. "Calculate" 클래스의 정적 메서드를 사용하여 "amount"라는 새 값을 생성합니다. 시도한 것처럼 JSTL 태그에 포함된 스크립트릿은 권장되지 않습니다.
EL 제한:
EL은 JavaBeans로 생성한 클래스의 인스턴스 메서드만 호출할 수 있습니다. . 인스턴스의 일부가 아닌 정적 메서드는 EL을 통해 직접 액세스할 수 없습니다.
해결책:
인스턴스 생성 메서드:
사용자 정의 EL 함수 등록:
인스턴스 메소드의 예:
public class Bean { private double balance; public double getAmount() { return Calculate.getAmount(balance); } // ...other methods }
<c:forEach var="row" items="${rs.rows}"> Amount: ${row.amount} <!-- Invoke instance method --> </c:forEach>
사용자 정의 EL 기능의 예:
<!-- functions.tld --> <taglib> ... <function> <name>calculateAmount</name> <function-class>com.example.Calculate</function-class> <function-signature>double getAmount(double)</function-signature> </function> ... </taglib>
<%@taglib uri="http://example.com/functions" prefix="f"%> ... Amount: ${f:calculateAmount(row.balance)} <!-- Invoke custom EL function -->
위 내용은 JSP/EL에서 정적 메소드를 어떻게 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!