2012-01-26 6 views
0

К сожалению мой английский плохокак предотвратить дублирование кода в калитку

У меня есть два профиля класса и EditProfile

в обоих классе я

protected void addContent(PageParameters pageParameters) { 
     final String email = pageParameters.get(ListUser.USER_EMAIL).toString(); 
     final User loggedUser = getLoggedUser(); 

     if (email == null) { 
      redirectToInterceptPage(new ErrorPage404(null)); 
      return; 
     } 

     User userByEmail = userService.findByEmail(email); 

     if (userByEmail == null) { 
      redirectToInterceptPage(new ForbiddenPage403(null)); 
      return; 
     } 

     final UserDetachableModel user = new UserDetachableModel(userByEmail); 

     // If the user is not active, there is no need to edit your profile. 
     if (!user.getObject().isActive()) { 
      redirectToInterceptPage(new ErrorPage404(null)); 
      return; 
     } 

     // Only admins can see the profile of other users. 
     if (!loggedUser.getUserRole().equals(UserRole.ADMIN) && !loggedUser.getEmail().equalsIgnoreCase(email)) { 
      redirectToInterceptPage(new ForbiddenPage403(null)); 
      return; 
     } 

    ......PROCESS TO SEE PROFILE OR EDIT PROFILE........ 
} 

Я использую CustomMountedPage, что я использую, чтобы скрыть серийный номер калитки. Пример http://HOST/Page/subPage? ID & PARAMS, чтобы посмотреть http://HOST/Page/subPage? PARAMS и доступа к другому профилю

Как предотвратить дублирование кода!

ответ

1

Вы можете использовать Панели. У них есть собственный файл разметки, как обычная страница, но вы можете использовать их в любой другой Wicket-странице в качестве компонента.

Посмотрите на this page, чтобы узнать, как правильно использовать панели.

+0

Мне не нужно блокировать целую страницу или ее часть, просто выполните действие в заданном состоянии. –

+0

Извините, я вас не понимаю ... вы можете перефразировать свой вопрос? – rotsch

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