Spring MVC Controller - PullRequest
       1

Spring MVC Controller

1 голос
/ 06 июня 2011

У меня есть класс контроллера, который выполняет поиск в базе данных студентов и отображает ее информацию.Прямо сейчас, независимо от того, найден конкретный студент или нет, он отображает один и тот же экран.Я планирую показать другое представление, если бэкэнд-поиск не возвращает никаких данных.Для этого я закодировал свой контроллер с помощью блока if else (найдены данные: покажите представление, покажите другое представление), но он, похоже, не работает.В любом случае я вижу, что тот же вид вернулся обратно.В этом примере студент / домашняя страница.Что я тут не так делаю?

@Controller
public class StudentController extends BaseClassController
{
 @RequestMapping( value = "/student/studentSearch.html", method = RequestMethod.POST )
  public String searchStudent( Arguments )
  {

    if( bundleStudentBean.getRollNum() != null)
    {

        try
        {
            //Call Service layer and get the data
            //Set into a model

        }
        catch( ServiceException e )
        {
           // Some exception occured
        }
        catch( Exception e )
        {
            //print error trace
        }
        //Student Found: Show student homepage
        return "student/homePage";  
    }

    //No Student Found: Show splash page
    return "student/noDataPage";
      }
 } 

Ответы [ 2 ]

1 голос
/ 03 января 2012

Хорошая практика: методы контроллера должны быть максимально легкими.

Плохая практика: использование Исключений в качестве потока управления .

Spring MVC имеет хороший способ сопоставление бизнес-исключений с пользовательскими представлениями с использованием ExceptionHandlers .Я предполагаю, что это только один из случаев, когда Контроллер ищет ученика и не находит ни одного - использование ExceptionHandlers должно помочь вам в написании легковесных Контроллеров.

1 голос
/ 03 января 2012

Вместо проверки, равняется ли значение rollNum нулю, лучше проверить, равно ли его значение нулю.Скорее всего, функция возвращает ноль, даже если вы не даете ей никакого значения. Скорее всего, в базе данных вы установили бы столбец не равным NULL и INT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...