Является ли request.getMethod (). EqualsIgnoreCase ("post") плохой идеей в (до-Spring-3.0) приложении для блогов Spring? - PullRequest
1 голос
/ 19 августа 2010

В Spring 3.0 аннотации позволяют указывать метод публикации блога в качестве URL-адреса.Но до этой версии Spring это лучший способ добиться этого:

 @SuppressWarnings("unchecked")
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse arg1) throws Exception {

ModelAndView mav = handleRequestInternal(request, arg1);

if (!Utils.loggedIn(request, arg1)) {

     return new ModelAndView(new RedirectView("login.html"));

     }

String id = Utils.getLoggedInUserId(request);
Key objectkey = KeyFactory.createKey(Admin.class.getSimpleName(), id);
//Admin user = userService.getAdmin(objectkey);
//System.out.println("admin key "+user.getId());

if (request.getMethod().equalsIgnoreCase("post")) {

         String title = request.getParameter("title");
         String content = request.getParameter("content");

         if (!title.isEmpty()&&!content.isEmpty()) {

BlogPost post = new BlogPost();

post.setTitle(title);
post.setContent(new Text(content));
post.setDate(new Date());
post.setUser(objectkey);

postService.storePost(post);

         }

}

return new ModelAndView(new RedirectView("news.html"));

}

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Если вы знаете, что данная страница может содержать POST (то есть отправку формы), один из подходов заключается в том, чтобы ваш контроллер наследовал от AbstractFormController или SimpleFormController и использовал или переопределил встроенный метод isFormSubmission ().

2 голосов
/ 19 августа 2010

На самом деле, pre-3.0 имел это также .Различие между этим и вашим примером заключается не в версии Spring, а в использовании конфигурации MVC для аннотаций.

Ваше решение кажется функциональным, но рассмотрите возможность перехода на конфигурацию на основе аннотаций? Вот пример того, как это просто.

...