Είναι ένας τρόπος για να δημιουργήσετε μια προσαρμοσμένη σελίδα 404, χωρίς web.xml εκεί;

ψήφοι
1

Έτσι, βασικά, είμαι σε θέση να δημιουργήσει μια προσαρμοσμένη σελίδα σφάλματος χρησιμοποιώντας web.xml:

 <error-page>
     <error-code>404</error-code>
     <location>/WEB-INF/pages/error/404.jsp</location>
 </error-page>

Αλλά μέχρι στιγμής, το έργο μου, δεν χρησιμοποιώ web.xml και έχουν την τάση να χρησιμοποιούν μόνο κώδικα Java.

Υπάρχει μια σωστή και εύκολος τρόπος για να το κάνουμε όπως στην web.xml αλλά χωρίς τη χρήση του (δημιουργία προσαρμοσμένων σελίδα σφάλματος); Και αν δεν υπάρχει τέτοιο τρόπο, τότε θα ήταν μια κακή κίνηση για να προσθέσετε web.xml μόνο για το χειρισμό προσαρμοσμένες σελίδες σφαλμάτων;

Δημοσιεύθηκε 20/10/2018 στις 12:30
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
0

Μπορείτε να δημιουργήσετε ένα EmbeddedServletContainerCustomizerεσωτερικό από εσάς κατηγορίες διαμόρφωσης. Πρώην

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return container -> {
        ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/exceptions/not-found.jsp");

        container.addErrorPages(error404Page);
    };
}
Απαντήθηκε 21/10/2018 στις 19:12
πηγή χρήστη

ψήφοι
0

Λοιπόν, όπως @ MarkA.Fitzgerald αναφέρονται στα σχόλια:

Η κοινότητα φαίνεται να αισθάνονται ότι δεν υπάρχει κανένας τρόπος για να γίνει αυτό, σύμφωνα με stackoverflow.com/a/13450154/1840078.

Έτσι, υποθέτω, μπορώ να ζήσω με web.xml κάνει τέτοια απλά πράγματα όπως τη δημιουργία προσαρμοσμένων σελίδων σφάλματος. Θεωρώ ότι είναι απλό και καθαρό, αντί να προσπαθούν να «hardcode» είναι σε Java.

Απαντήθηκε 20/10/2018 στις 14:03
πηγή χρήστη

ψήφοι
0

Αυτό είναι ό, τι κάνει @ControllerAdvice την άνοιξη MVC

@ControllerAdvice
public class GlobalExceptionHandler {
   @ExceptionHandler({NoHandlerFoundException.class})
   @ResponseStatus(value = HttpStatus.NOT_FOUND)
   public void handleNotFound(HttpSession session, HttpServletRequest req, HttpServletResponse httpServletResponse, Exception ex) {
   }
}

Επίσης, προσθέστε αυτή τη γραμμή για να WebApplicationInitializer σας

public class CCPMWebAppInitializer implements WebApplicationInitializer {

  @Override
  public void onStartup(ServletContext servletContext) throws ServletException {

      // Create the 'root' Spring application context
      AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
      ....
       DispatcherServlet dispatcherServlet = new DispatcherServlet(rootContext);
       dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
      ...
  }
Απαντήθηκε 20/10/2018 στις 12:48
πηγή χρήστη

ψήφοι
0

Μπορείτε να δημιουργήσετε μια τάξη java και του ελεγκτή σε αυτό. Για παράδειγμα, η χρήση ErrorController RequestMapping εκεί και να δημιουργήσει ένα JSP ή thymeleaf σελίδα front-end για αυτό.

Εδώ είναι καλή πρακτική https://www.baeldung.com/custom-error-page-spring-mvc μόλις google.

Απαντήθηκε 20/10/2018 στις 12:33
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more