Как передать java.утиль.Дата в URL-адресе со страницы JSF?
Мне нужно передать java.утиль.Дата в адрес из бэк-бобов в другую экземпляры facelet (и бобовые).
Может ли кто-нибудь сказать мне, возможно ли это каким-то образом? Я знаю, что не могу передавать сложные объекты в URL, но включает ли это также дату?
Или мне нужно преобразовать вставленную дату (с помощью тега JSF <h:inputText>) в строку, передать ее в URL и затем преобразовать обратно в дату?
1 ответ:
Факт: параметры HTTP-запроса имеют тип
Таким образом, логически, вы должны преобразовать изString.DateвStringпри подготовке и записи параметра HTTP-запроса перед отправкой и преобразовать изStringобратно вDateпри чтении и разборе входящего параметра HTTP-запроса.Вам не ясно, как именно вы готовите URL, но учитывая, что вы получаете
Dateв качестве входных данных от<h:inputText>, я предположу, что вы пытаетесь передать его в качестве параметра a перенаправление URL-адреса в методе действия backing bean. В этом случае используйтеSimpleDateFormatпреобразовать изDateвString.public String submit() { String dateString = new SimpleDateFormat("yyyyMMddHHmmss").format(date); return "newpage.xhtml?faces-redirect=true&date=" + dateString; }На странице получения,
newpage.xhtml, вы можете использовать<f:viewParam>, Чтобы установить его как свойство bean. Он используетSimpleDateFormatпод обложками, так что вы можете использовать тот же синтаксис шаблона.<f:metadata> <f:viewParam name="date" value="#{bean.date}"> <f:convertDateTime pattern="yyyyMMddHHmmss" /> </f:viewParam> </f:metadata>См. также:
Comments