JSP

2017-05-10 14 views
0

上のRuntimeExceptionを表示するにはどうすればメッセージでRuntimeExceptionを投げると、私はJSPJSP

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

私は<c:out value="${RuntimeException}"/>を試した上でそれを表示したいが、それは間違ったアプローチでした。メッセージを表示するにはどうしたらいいですか?

答えて

3
上記のような何かを試すことができます

これはさまざまな方法で実行できます。要件を前提としているので、jspページで例外メッセージを検証エラーとして表示したいとします。その場合、私はRuntimeExceptionを投げるのではなく、むしろエラーメッセージをHttpServletRequestオブジェクトにバインドし、あなたが扱っているHttpServletのオブジェクトからバインドします。

その後、あなたのJSPからそのメッセージにアクセスできるようになり、あなたが好きなようにすることを示すことができる - あなたのサーブレットで

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

ありがとうございます。それは魅力のように働いた。私は 'choose、when、otherwise'を使っていたので、' ' 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

はい、可能です。私が答えた考えを試してみてください。 @エニス –

0
<% 

     int x = 0; 

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

     %> 

あなたは