我抛出一条带有消息的RuntimeException
,我想在JSP上显示它
.....
String ip = getClientIP();
if (loginAttemptService.isBlocked(ip)) {
throw new RuntimeException("blocked");
}
.....
我尝试了<c:out value="${RuntimeException}"/>
,但这是一种错误的做法。如何显示消息?
答案 0 :(得分:3)
你可以用不同的方式做到这一点。在我假设您的要求时,您希望在jsp页面中将Exception消息显示为验证错误。在这种情况下,我宁愿不抛出RuntimeException
,而是将错误消息绑定到您正在处理的调用HttpServletRequest
的{{1}}对象。
然后它就能从你的jsp访问那条消息,并可以随你显示 -
你的Servlet中的
HttpServlet
现在在你的jsp中,只需这样做
String ip = getClientIP();
if (loginAttemptService.isBlocked(ip)) {
request.setAttribute("error", "blocked");
}
答案 1 :(得分: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>
答案 2 :(得分:0)
<%
int x = 0;
if (x ==o ) {
//some logic
}
else
{
throw new RuntimeException("message");
}
%>
你可以尝试上面的东西