2017-05-10 37 views
0

的RuntimeException我扔一个消息RuntimeException,我想表明它在JSP如何显示在JSP

..... 
String ip = getClientIP(); 
if (loginAttemptService.isBlocked(ip)) { 
    throw new RuntimeException("blocked"); 
} 
..... 

我试过<c:out value="${RuntimeException}"/>,但它是一个错误的做法。我如何显示消息?

回答

3

你可以用不同的方式做到这一点。当我假设你的需求时,你想在你的jsp页面中显示Exception消息作为验证错误。在这种情况下,我宁愿不抛出RuntimeException,而是将错误消息绑定到您正在处理的调用HttpServletHttpServletRequest对象。

然后将能够从JSP访问消息,可以证明,只要你喜欢 -

在servlet

String ip = getClientIP(); 
if (loginAttemptService.isBlocked(ip)) { 
    request.setAttribute("error", "blocked"); 
} 

现在,在你的JSP

,只是这样做

<c:if test=${error not empty}/> 
    <c:out value="${error}"/> 
</C:if> 
+1

谢谢。它像一个魅力。因为我使用'选择,当,否则'我只是写测试为' Eniss

0

你可以写你自己的error.jsp在不同的文件中:

<%@ page isErrorPage="true" import="java.io.*" contentType="text/plain"%> 
<%=exception.getMessage()%> 
<c:out value="${exception}"/> 

只需将它添加到web.xml这样的:

<error-page> 
    <exception-type>java.lang.RuntimeException</exception-type> 
    <location>/error.jsp</location> 
</error-page> 
+0

是否可以在不重定向到error.jsp的情况下显示错误? – Eniss

+0

是的,可能的。尝试我回答的想法。 @Eniss –

0
<% 

     int x = 0; 

     if (x ==o) { 
      //some logic 
     } 
     else 
{ 
throw new RuntimeException("message"); 
} 

     %> 

你可以尝试像上述