SpringMvc(Springブートバージョン1.5.1)で無効なURLのカスタムエラーページを作成しようとしています。spring-bootのカスタマイズされた404エラーページ
spring.thymeleaf.cache=false
server.error.whitelabel.enabled=false
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
私の例外ハンドラがある
application.properties:
RestResponseEntityExceptionHandler.java
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
public RestResponseEntityExceptionHandler() {
super();
}
@Override
protected ResponseEntity<Object> handleNoHandlerFoundException(NoHandlerFoundException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
logger.error("404 Status Code", ex);
final GenericResponse bodyOfResponse = new GenericResponse(messages.getMessage("No such page", null, request.getLocale()), "NoHandlerFound");
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}
}
を私が持っているデフォルトのホワイトレーベルのエラーページを無効にするには
これは原則として機能します。私はブラウザで無効なURLに行けば、私は次のようになりますJSONを取得:
{「メッセージ」:「いいえ、そのようなページ」、「エラー」:「NoHandlerFound」}
代わりにJSONレスポンスの適切なHTMLビューを表示したいです(ホワイトリストのページに似ています)。これは "メッセージ"文字列を置き換えることができるテンプレートでなければなりません。このビューをレンダリングするにはどうしたらいいですか?
私はthymeleafで春のMVCを使用して、資源/テンプレート/中とで/に/リソース/公共/エラーerror.htmlと404.htmlページを入れてみましたAM /リソース/テンプレート/エラー/明らかに彼らは見つけることができません。この仕事をするために必要なことは他にありますか? – user1583209
プロパティファイルからserver.error.whitelabel.enabled = falseを削除します。 – jmw5598
それはうまくいった。今、私は、ビューにリクエストURLを取得する方法を理解する必要があります。 – user1583209