2012-11-09 2 views
1

전달이 수행되기 전에 JSP 페이지의 본문 안에 javascript로 경고를 보내려고합니다.JSP 전달 전에 JavaScript 경고를 표시합니다.

는 여기에 내가 내가이 작업을 수행 할 수있는 또 다른 JSP로 page.How에 제어를 전달하기 전에 메시지를 경고 할 다음 코드를

<% 
... 
out.write("<script type='text/javascript'>\n"); 
out.write("alert(" + "' Hello '" + ");\n"); 
out.write("</script>\n"); 

request.getRequestDispatcher("secondpage.jsp").forward(request, response); 
%> 

을합니다. 여기서 전달 부분을 제거하면 경고 메시지가 경고 상자에 표시됩니다.

답변

3

forward은 브라우저로 보내지는 페이지의 내용을 대체합니다.

브라우저에서 작성한 스크립트를 수신하지 못하기 때문에 실행할 수 없습니다. 당신이 리디렉션되기 전에 경고 1 초 볼 수있는 사용자 싶어 가정 할

, 당신이 할 수 있습니다 :

<% 
out.write("<script type='text/javascript'>\n"); 
out.write("alert(' Hello ');\n"); 
out.write("setTimeout(function(){window.location.href='secondpage.jsp'},1000);"); 
out.write("</script>\n"); 
%> 
+0

다른 방법으로이를 수행 할 수 있습니다. –

+0

document.location은 더 이상 사용되지 않으므로 window.location을 사용하십시오. – mplungjan

+0

@mplungjan 나는 더 논리적 인 window.location을 선호합니다. 그래서 그것을 바꿀 것입니다. –

2

을 왜 JSP에서 자바를 통해 스크립을 JS 코드를 작성하는 JSP 이미 자체 동안 일반 HTML/JS 코드를 작성하기위한 훌륭한 템플릿을 제공합니까?

어쨌든 JS 대신 JS 대신 리디렉션을 수행하십시오. 자바/JSP는 웹 서버에서 실행되며 HTML/JS를 생성합니다.이 HTML/JS는 웹 브라우저에서만 실행됩니다. forward는 기본적으로 요청/응답 대상을 대체하고 응답이 커밋되지 않은 경우 응답 버퍼에 미리 기록 된 모든 내용을 삭제합니다. 여기

는 일반 HTML/JS에서 함께 할 수있는 방법은 다음과 같습니다 그것 뿐이다

<script> 
    alert('Hello'); 
    window.location = 'secondpage.jsp'; 
</script> 

합니다. 약간 스크립틀릿 추함에 넣지 않아도됩니다. JSP 파일 전체에 넣으십시오.

+0

타임 아웃을 사용하지 않으면 뒤로 버튼이 나지 않습니다. 그래서 당신이 시간 초과하지 않는 경우 .replace가 바람직합니다. – mplungjan

+0

JS에 경고를받을 일부 Java 컨텐트에 액세스하려고 했으므로 suggestion.I을 주셔서 감사합니다. 자바 스크립트를 통해 JS 코드를 작성했습니다. 이것도 대안이 있습니까? –

+0

EL 만 사용하십시오. 예 : 'alert ('$ {bean.property}')'. – BalusC

관련 문제