728x90

Spring에서 정의한 커스텀 태그 

 

기본적으로 el을 기초로 만들었기 때문에 el에서 할 수 있는 것은 대부분 할 수 있다. 

 

spel은 el은 못하는 생성자 호출을 하거나,  Spring Container에 등록된 bean 객체를 호출하여 사용할 수 있다는 장점이 있다.

 

<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>

태그 라이브러리를 import 한다. 

 

<s:eval expression="'KIM'.replace('K','N')"/>

s:eval 태그에 expression 속성에서 사용

 

문자열, 숫자, 논리형 리터럴을 사용할 수 있다.

문자열리터럴(SPEL):<s:eval expression="'KIM'.replace('K','N')"/> 

숫자리터럴(SPEL):<s:eval expression="12345+347834687"/>

논리리터럴(SPEL):<s:eval expression="true"/>

문자열에서는 String 의 메서드도 사용가능하고 

숫자는 연산도 처리한다.

 

request.setAttribute("price", 345345435);

request.setAttribute("user", new User("id", "password", "name"));

<s:eval expression="price"/> <!--345345435 출력-->

<s:eval expression="user.name"/><!--name 출력-->

변수, Bean 객체의 변수도 출력

 

<s:eval expression="${price}+3455"/> == <s:eval expression="price+3455"/>

el ${} 과 함께 사용할 수도 있다. 

 

<s:eval expression="new java.text.DecimalFormat('###,###.0').format(price)"/>

풀네임으로 생성자 호출도 가능하다

 

@Component("elBean")

public class SpringELBean {

private String member;

public SpringELBean() {

member="KIM";

}

 

public String printMembers() {

return member;

}

 

 

Component 어노테이션으로 elBean이라는 이름으로 Spring Container에 객체를 등록했다.

<s:eval expression="@elBean.member"/><br/>

<s:eval expression="@elBean.printMembers()"/><br/>

@componentName.memberField

 

bean 객체 앞에 @를 붙여주어야 한다.

 

 

'Java > Spring Boot' 카테고리의 다른 글

Spring Interceptor  (0) 2023.09.14
JSTL coreTag  (0) 2023.09.13
Spring Boot Controller Type of Parameters  (0) 2023.09.13
Spring Boot DataSource 설정  (0) 2023.09.13
Java WebAppInitConfig  (0) 2023.09.13

+ Recent posts