2012-05-07 19 views
0

可能重复:
How to use scriptlet inside javascriptJavascript和scriptlet:可以做到吗?

<% 
if(request.getAttribute("exception")!=null){%> 

<script type="text/javascript" > 
    alert("hi"); 

    parent.error.document.open(); 
    parent.error.document.write("bye"); 
    parent.error.document.write(<%=request.getAttribute("exception").toString()%>); 
    parent.error.document.close(); 

</script> 
</form> 




<%}%> 

是否有可能有这种代码?有其他选择吗?

+0

如果您使用scriptlet的某些[Tag Library](http://java.sun.com/products/jsp/tutorial/TagLibrariesTOC.html),则可能会出现这种情况。 –

+0

您可以在scriplet条件下定义java脚本。 –

回答

0

你只是缺少一些引用来将该值视为字符串而不是变量。

parent.error.document.write("<%=request.getAttribute("exception").toString()%>"); 

当打印到页面,它会出现如下:

parent.error.document.write("myException"); 
+0

即使我没有看到警告框显示。 – abson

+0

@abson那么你的'if'语句失败了......你所拥有的是有效的代码,除了上面的答案中提到的引号外。 –

+0

它将进入if块但不打印或显示警报框 – abson

0

您的代码应该工作。但我更喜欢JSTL:

<c:if test="${not empty(exception)}"> 
    <script type="text/javascript"> 
     alert("hi"); 
     parent.error.document.open(); 
     parent.error.document.write("bye"); 
     parent.error.document.write(<%=request.getAttribute("exception").toString()%>); 
     parent.error.document.close(); 

    </script> 
</c:if> 

看起来更自然jsp。