如何从JSF页面传递URL中的java.util.Date?

use*_*397 4 url jsf parameter-passing jsf-2.2

我需要将URL中的java.util.Date从辅助bean传递给另一个Facelet(和bean).

任何人都可以告诉我这是否可能?我知道我无法在URL中传递复杂对象,但是这也包括Date吗?

或者我是否必须将插入日期(使用JSF标记<h:inputText>)转换为String,将其传递给URL然后将其转换回日期?

Bal*_*usC 10

事实:HTTP请求参数是String类型.

因此,从逻辑上讲,在读取和解析传入的HTTP请求参数时,您必须先转换DateString准备和编写HTTP请求参数,然后再发送和转换String回来Date.

你不清楚你准备URL的确切程度,但鉴于你正在获取Date输入<h:inputText>,我假设你试图将它作为重定向URL的参数传递给支持bean动作方法.在这种情况下,用于SimpleDateFormat转换DateString.

public String submit() {
    String dateString = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
    return "newpage.xhtml?faces-redirect=true&date=" + dateString;
}
Run Code Online (Sandbox Code Playgroud)

在接收页面中newpage.xhtml,您可以使用<f:viewParam>它将其设置为bean属性.它使用SimpleDateFormat了封面,因此您可以使用相同的模式语法.

<f:metadata>
    <f:viewParam name="date" value="#{bean.date}">
        <f:convertDateTime pattern="yyyyMMddHHmmss" />
    </f:viewParam>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

也可以看看: