▹ JSF 관련 라이브러리/PrimeFaces

[PrimeFaces] Java 서버 측에서 클라이언트 측 JavaScript 코드를 실행하기

기록원장 2025. 1. 25. 18:44
반응형
PrimeFaces를 이용해 Java 서버 측에서 클라이언트 측 JavaScript 코드를 실행하기
PrimeFaces.current().executeScript("실행 할 JavaScript  코드")

 

PrimeFaces.current().executeScript() 메서드는 PrimeFaces 라이브러리에서 제공하는 Java 메서드로, 서버 측에서 클라이언트 측의 JavaScript 코드를 실행하기 위해 사용된다.
Java 서버 측에서 클라이언트 측의 JavaScript 코드를 즉시 실행할 수 있기 때문에, Java 서버와 클라이언트 브라우저 간의 상호작용을 쉽게 관리할 수 있다.

 

executeScript()의 파라미터로는 실행 할 JavaScript 코드를 직접 넣어도 되고,  JavaScript 함수명을 넣어주어도 된다.

 

 

◆ 사용예시1 (파라미터에 JavaScript 코드 직접 대입)


PrimeFaces.current().executeScript("alert('Hello, World!');");

위 코드는 브라우저에서 alert('Hello, World!')를 실행하여 팝업 창을 표시하게 된다.

 

 

◆ 사용예시2 (파라미터에 JavaScript 메서드명 대입)


function scrollToTop() {
	window.scrollTo({
		top: 0, behavior: 'smooth' 
	});
}
PrimeFaces.current().executeScript("scrollToTop();");

만약 여러 파일에 동일한 이름의 함수가 있는 경우, 마지막으로 정의된 JavaScript 함수가 실행된다.

 

 

◆ 사용예시3 (PrimeFaces에서 제공하는 위젯 컨트롤 명령어 대입)


JavaScript로 PrimeFaces UI 컴포넌트를 동적으로 조작할 수도 있다.

PF() 함수를 사용하면 특정 컴포넌트에 설정된 widgetVar 속성을 통해 클라이언트 측에서 해당 컴포넌트의 JavaScript 객체를 반환하는데, 반환된 객체를 사용하여 컴포넌트의 다양한 동작(열기, 닫기, 업데이트 등)을 실행할 수 있다.

 

<p:dialog id="dialog" widgetVar="testDialogVar" modal="true" closable="true">
        <p:outputLabel value="Hello, World!" />
</p:dialog>
PrimeFaces.current().executeScript("PF('testDialogVar').hide();");

위와 같이 PrimeFaces 컴포넌트의 JavaScript 객체를 식별하기 위해 widgetVar 속성을 설정하면 widgetVar="testDialogVar"로 이 컴포넌트를 제어할 수 있다.

 

 

참조
executeScript
https://www.primefaces.org/docs/api/7.0/org/primefaces/PrimeFaces.html#executeScript-java.lang.String-

 


글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --

 

반응형