Как передать java.утиль.Дата в URL-адресе со страницы JSF?



Мне нужно передать java.утиль.Дата в адрес из бэк-бобов в другую экземпляры facelet (и бобовые).



Может ли кто-нибудь сказать мне, возможно ли это каким-то образом? Я знаю, что не могу передавать сложные объекты в URL, но включает ли это также дату?

Или мне нужно преобразовать вставленную дату (с помощью тега JSF <h:inputText>) в строку, передать ее в URL и затем преобразовать обратно в дату?

800   1  

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

    Ничего не найдено.