2013-09-12 2 views
0

Ниже мой контроллер:Как обрабатывать ошибку формата URL-адреса в контроллере?

@RequestMapping("Student/{ID}/{Name}/{Age}") 
public void addStudent(@PathVariable String ID, 
         @PathVariable String Name, 
         @PathVariable String Age, 
         HttpServletRequest request, 
         HttpServletResponse response) throws IOException { 
    try { 
     // Handling some type errors 
     new Integer(Age); // Examine the format of age 
     StatusBean bean = new StatusBean(); 
     bean.setResonCode("000"); // Success/Fail reasons 
     bean.setStatus("1"); // 1: Success; 0: Fail 
     outputJson(bean, response); 
    } 
    catch (NumberFormatException e) { 
     ... 
    } 
    catch (Exception e) { 
     ... 
    } 

Стьюдента ID, Имя, Возраст, вводятся пользователями, и эти переменные не может быть пустым или пустое пространство.

В нормальном случае контроллер может обрабатывать http://localhost:8080/Student/003/Peter/17. Однако он не мог обрабатывать такие случаи, как http://localhost:8080/Student///17 или http://localhost:8080/Student/003/Peter/. Как я могу это сделать, если я хочу обрабатывать эти случаи в моем контроллере?

Другой вопрос: новый Integer (Age) - это хороший способ изучить формат?

+1

Пожалуйста, ознакомьтесь, пожалуйста, если: http://stackoverflow.com/questions/2513031/multiple-spring-requestmapping-annotations –

ответ

1

Вы можете определить страницы ошибок в конфигурации диспетчера. Оформить заказ этого сайта http://blog.codeleak.pl/2013/04/how-to-custom-error-pages-in-tomcat.html он показывает основную страницу 404, вы можете вернуть любой код ошибки вы хотите от вашего контроллера, как этого

@RequestMapping("Student/{ID}/{Name}/{Age}") 
public void addStudent(@PathVariable String ID, 
        @PathVariable String Name, 
        @PathVariable String Age, 
        HttpServletRequest request, 
        HttpServletResponse response) throws IOException { 
try { 
    // Handling some type errors 
    new Integer(Age); // Examine the format of age 
    StatusBean bean = new StatusBean(); 
    bean.setResonCode("000"); // Success/Fail reasons 
    bean.setStatus("1"); // 1: Success; 0: Fail 
    outputJson(bean, response); 
} 
catch (NumberFormatException e) { 
    ... 
    // set http code and let the dispatcher show the error page. 
    response.sendError(HttpServletResponse.SC_BAD_REQUEST); 
} 
catch (Exception e) { 
    ... 
    // set http code and let the dispatcher show the error page. 
    response.sendError(HttpServletResponse.SC_BAD_REQUEST); 
} 

И да new Integer(Age); и ловить ошибки в порядке.

 Смежные вопросы

  • Нет связанных вопросов^_^