@POST @Produces(MediaType.TEXT_HTML) public Response updateView( @Context UriInfo uri, @Context HttpServletRequest request, @FormParam("userName") String userName, @FormParam("displayName") String displayName, @FormParam("email") String email, @FormParam("company") String company) { ModelAndView view; ModelMap model = new ModelMap(); ResponseBuilder builder; User user = new User(); User currentUser; URI redirectURI; try { currentUser = getCurrentUser(); model.addAttribute("user", currentUser); model.addAttribute("title", "Account Settings - " + getContextName()); user.setDisplayName(displayName); user.setEmail(email); if (!company.isEmpty()) { user.setCompany(company); } getUserBo().update(userName, user); redirectURI = UriBuilder.fromUri(uri.getBaseUri()).path("account").build(); setFlashMessage(request, "Your profile was updated successfully."); builder = Response.seeOther(redirectURI); } catch (UserNotFoundException e) { logger.warn("User not found", e); view = buildErrorView(Status.INTERNAL_SERVER_ERROR, e.getMessage()); builder = Response.serverError().entity(view); } catch (NotAuthorizedException e) { logger.info("User unauthorized", e); view = buildErrorView(Status.UNAUTHORIZED, e.getMessage()); builder = Response.status(Status.UNAUTHORIZED).entity(view); } catch (ValidationException e) { logger.info("A form field is not valid", e); Map<String, String> formInfo = new HashMap<String, String>(); formInfo.put("userName", userName); formInfo.put("displayName", displayName); formInfo.put("email", email); formInfo.put("company", company); model.addAttribute("form_data", formInfo); model.addAttribute("form_error", e); view = new ModelAndView("user.detail", model); builder = Response.status(Status.BAD_REQUEST).entity(view); } return builder.build(); }