<c:import url="${url}"/>
사용시 주의 할점...
만약 아래와 같은 코드가 있다고 가정하고 실행을 시키면 스크립트가 정상적으로 돌아가지 않는다.
원인은 <c:import url="${url}" var="urlSource"/> 에서 내부에 있는 스크립트 에러가
( 이미지 관련 에러! 왜냐! 난 구글 이미지를 준비하지 않았으니까.ㅋ ) 발생하는데 이럴경우 내 코드의
스크립트에도 영향이 가므로 document 자체가 만들어 지지 않는다.
<script>
window.onload = function()
{
alert("tt");
var btn_see = document.getElementById("btnsee");
var btn_hidden = document.getElementById("btnhidden");
btn_see.onclick = show;
btn_hidden.onclick = hide;
};
var show = function()
{
document.getElementById("divConts").style.display = "block";
};
var hide = function()
{
document.getElementById("divConts").style.display = "none";
};
</script>
</head>
<body>
<div style="border:1px solid #ff0000">
<c:set var="url" value="http://www.google.co.kr" scope="page"/>
<c:import url="${url}" var="urlSource"/>
<c:out value="${urlSource}" escapeXml="false"/>
</div>
<div>
<input type="button" id="btnsee" value="소스보기""></input>
<input type="button" id="btnhidden" value="소스감추기"></input>
</div>
<div style="border:1px solid #ff0000" id="divConts">
<textarea rows="20" cols="100">
<c:import url="${url}" var="urlSource"/>
<c:out value="${urlSource}" escapeXml="true"/>
</textarea>
</div>
</body>
</html>
아래와 같이 버튼 이벤트에 독립적으로 맵핑해서 실행해보자.
그러면 정상적으로 실행을 할 것이다.
<script>
window.onload = function()
{
alert("tt");
var btn_see = document.getElementById("btnsee");
var btn_hidden = document.getElementById("btnhidden");
btn_see.onclick = show;
btn_hidden.onclick = hide;
};
var show = function()
{
document.getElementById("divConts").style.display = "block";
};
var hide = function()
{
document.getElementById("divConts").style.display = "none";
};
function showEvent()
{
document.getElementById("divConts").style.display = "block";
}
function hideEvent()
{
document.getElementById("divConts").style.display = "none";
}
</script>
</head>
<body>
<div style="border:1px solid #ff0000">
<c:set var="url" value="http://www.google.co.kr" scope="page"/>
<c:import url="${url}" var="urlSource"/>
<c:out value="${urlSource}" escapeXml="false"/>
</div>
<div>
<input type="button" id="btnsee" value="소스보기" onclick="showEvent()"></input>
<input type="button" id="btnhidden" value="소스감추기" onclick="hideEvent()"></input>
</div>
<div style="border:1px solid #ff0000" id="divConts">
<textarea rows="20" cols="100">
<c:import url="${url}" var="urlSource"/>
<c:out value="${urlSource}" escapeXml="true"/>
</textarea>
</div>
</body>
</html>
편법 :
스크립트 선언
위치를 변경 ( 이 방법은 어디까지나 편법이므로 비추! )
'나는 엔지니어 > JSP' 카테고리의 다른 글
EL ( 익스프레션 언어) (0) | 2012.07.16 |
---|---|
cleases 폴더 보기 (0) | 2012.07.11 |
JSTL (0) | 2012.07.11 |
한글 깨질때.. (0) | 2012.07.11 |
톰캣 context.xml 을 이용한 데이터베이스 연결 (0) | 2012.07.10 |