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

如何在JSF页面的URL中传递java.util.Date?,jsf,url,parameter-passing,jsf-2.2,Jsf,Url,Parameter Passing,Jsf 2.2,我需要将URL中的java.util.Date从一个支持bean传递给另一个Facelet(和bean) 有人能告诉我这是否可能吗?我知道我不能在URL中传递复杂的对象,但这也包括日期吗 或者我必须将插入的日期(使用JSF标记)转换为字符串,在URL中传递,然后将其转换回日期吗?事实:HTTP请求参数属于字符串类型 因此,从逻辑上讲,您必须在准备和写入HTTP请求参数时从Date转换为String,然后再发送,并在读取和解析传入的HTTP请求参数时从String转换回Date 您不清楚准备URL

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

有人能告诉我这是否可能吗?我知道我不能在URL中传递复杂的对象,但这也包括日期吗


或者我必须将插入的日期(使用JSF标记)转换为字符串,在URL中传递,然后将其转换回日期吗?

事实:HTTP请求参数属于
字符串类型

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

您不清楚准备URL的具体方式,但考虑到您正在获取由
输入的
日期,我假设您正在尝试将其作为支持bean操作方法中重定向URL的参数传递。在这种情况下,使用将日期转换为字符串

public String submit() {
    String dateString = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
    return "newpage.xhtml?faces-redirect=true&date=" + dateString;
}
在接收页面中,
newpage.xhtml
,您可以使用
将其设置为bean属性。它在封面下使用了
SimpleDateFormat
,因此您可以使用相同的模式语法

<f:metadata>
    <f:viewParam name="date" value="#{bean.date}">
        <f:convertDateTime pattern="yyyyMMddHHmmss" />
    </f:viewParam>
</f:metadata>

另见:

作为旁注:URL中包含要传递的数据的部分称为a。是的,我从JSF inputText中获取了日期作为util.date,并首先将其转换为字符串,然后返回到数据库查询的日期。但是关于viewParams的DateTime转换器的提示很好。非常感谢。