2011-02-24 3 views
0

Struts 2 기반 응용 프로그램에서 메서드를 호출합니다. Java 클래스와 JSP가 있습니다. JSP에서는 자바 스크립트 파일이 포함되어 있습니다.
문자열을 반환하는 Java 메서드가 있습니다.
자바 스크립트 파일에서이 메소드를 호출하려고합니다.
어떻게하면됩니까?Javascript 파일

+0

수출 자바 HTTP 요청과 같은 방법 및 JS에서 요청을이 – qrtt1

+4

JSP와 같은 약어를 들어, 각 문장의 시작에서 대문자를 사용하고 단어 'I'의 사용하십시오. 그 글은 읽으려는 고통 스럽다. 또 다른 팁 : "어떻게해야합니까?"와 같은 질문에 물음표 (?)를 추가하는 것을 잊지 마십시오. –

답변

2

Struts는 서버 측 프레임 워크이므로 Java가 서버에서 실행 중입니다.

JavaScript는 일반적으로 브라우저에서 실행되는 것으로 나타납니다 (그리고 SSJS 솔루션과 관련이있는 것처럼 들리지는 않습니다).

따라서 : 할 수 없습니다. 프로그램이 다른 컴퓨터에서 실행 중이며 직접 상호 작용할 수 없습니다.

검색 가능한 데이터 (예 : 쿼리 문자열)를 포함하여 새 HTTP 요청을 보내야합니다. <form>을 생성하고 XMLHttpRequest 개체를 사용하여 submit() 메서드를 호출하고 요소를 적절하게 설정 한 <script> 요소를 동적으로 추가하고 다양한 다른 방법으로 location을 설정하여이 작업을 수행 할 수 있습니다.

+0

일부 텍스트 입력란의 유효성을 검사하고 싶습니다 (예 : 텍스트 입력란을 비워 둘 수 없음). 유효성을 검사 할 텍스트 필드가 java 메서드의 문자열 값에서 나옵니다. – user608032

+0

방금 ​​설명한 제한 사항은 변경되지 않습니다. 페이지의 나머지 부분과 함께 브라우저에 해당 정보를 가져 오는 방법을 찾아야합니다. – Quentin

1

자바 변수/JSP 문자열을 JS 변수로 페이지 본문에 직접 쓸 수 있습니다. (나는 당신을 올바르게 이해하고, 내가 잘 모르는 경우).

+0

네, 간단하게하십시오. ''. – BalusC

+0

이 코드를 js 파일에 사용했습니다 : var collegename = '$ {collegename}'; alert ("collegename"+ collegename) 은 작업 클래스에서 getter/setter를 갖는 collegename에 관한 것입니다. 하지만 colloge 이름이 정의되지 않았 음을 보여줍니다. – user608032

0

두 가지 중 하나를 의미합니다.

렌더링 할 때 메소드를 호출하고 자바 스크립트에 출력을 포함 할 수 있습니다. 이를 위해 JSP를 사용하여 메소드를 호출하십시오.

또는 '런타임'에서 메소드를 호출하려고합니다. 그렇다면 브라우저에서 ajax 호출을하고 그런 식으로 메서드를 호출해야합니다. 당신은 다른 기법을 사용할 수 있습니다 (jax-rs가 마음에 듭니다). 어쩌면 스트럿츠는 이미 무언가를 가지고 있습니다. 확실하지 않습니다. 기본적으로 서블릿에 대해 http 요청을합니다. 서블릿은 메소드를 호출하고 응답을 리턴합니다. 그런 다음 자바 스크립트가 응답을 처리합니다.

0

JSP에서 다음과 같은 것을 의미합니까?

<script type="text/javascript"> 
    <s:property value="JSMethodName"/>(); 
<script> 

내가 위의 당신도 아마 더 나은 페이지로드 후를 위해 위의 수정 ... 반복자에 <s:property> 태그는 메소드를 호출하는 것으로 포장 할 수 ... 한 번 특정 JS 메소드를 호출합니다 의미 .

위의 내용이 충분하지 않은 경우 ajax 메서드를 사용하여 JS 메서드 목록을 동적으로 반환하고 호출 할 수 있습니다. jquery 및 S2 JSON 플러그 인을 사용하는 것이 좋습니다.

관련 문제