Мы хотели бы добавить ссылку html-clickable к информационному сообщению (Spring RediractAttribute/Flash Message) после того, как конечный пользователь успешно отправит форму на нашем веб-сайте.Добавление ссылки HTML к сообщениям Spring RedirectAttribute
Итак, конец будет увидеть следующие (Flash) сообщения:
Успех
Объект обновляется.
Информация
Помните Edit Attribute.
Где Изменить атрибут будет активная ссылка в браузере конечного пользователя.
То, что у нас происходит с трудным временем, заключается в том, куда идет код, чтобы создать ссылку html-текст?
Мы не чувствуем, что в нашем файле messages.properties должен быть любой html, и мы не чувствуем, что в нашем контроллере должно быть какое-либо html-генерация.
Вот наш код контроллера:
public ModelAndView processSubmit(@Valid ObjectCommand command, BindingResult bindingResult, RedirectAttributes redirectAttributes, HttpServletRequest request) {
if (bindingResult.hasErrors()) {
return new ModelAndView("/form.html");
} else {
// Command Object successfully send to service to update database as needed.
// First Flash Message (the success message from above).
redirectAttributes.addFlashAttribute("successMessage", "Object updated.");
// Second Flash Message (The informational message from above urging the user to go update something else too.
String informationMessage = this.getInformationMessage(request, object);
redirectAttributes.addFlashAttribute("infoMessage", informationMessage);
return new ModelAndView("redirect:/object.html");
}
}
private String getInformationMessage(Request request, Object object) {
// THIS CODE HERE, FEELS SLIMY.
String editUrl = "Remember to <a href=\"" + request.getContextPath() + "/object/" + object.getIdentifier() + "/attribute.html\" />Edit Attribute</a>";
}
Тогда вот наш JSP код тегов для отображения обоего информационных сообщений:
<%@tag body-content="empty"%>
<%@ include file="/WEB-INF/views/html/common/include.jsp" %>
<%@ attribute name="message" required="true" type="java.lang.String" %>
<c:if test="${not empty message}">
<div class="info_message">
<div class="title">Information:</div>
<div class="body">
${message}
</div>
</div>
</c:if>
Любого дружеского совета о том, как получить активную ссылку на нашем информационное сообщение будет принята с благодарностью.
Спасибо за ответ. Я обновил свой код, чтобы иметь правильную переадресацию. На самом деле это не мой вопрос. Мой вопрос включает код, который находится в методе getInformationMessage. Не представляется правильным форматировать html-текст в контроллере, поскольку, по крайней мере, на мой взгляд, контроллер должен быть агностиком того, как его представление фактически отображает что-либо. В этом суть моей проблемы. – hooknc