当前位置: 首页 > 知识库问答 >
问题:

PrimeFaces命令按钮需要验证两个日历组件,然后将包含两个日历值的外部URL重定向到新页面

蒋培
2023-03-14

我不熟悉JSF和primefaces,我正在尝试做以下工作:我必须创建一个包含两个日期的URL,然后在新页面中打开它。我使用primefaces,所以我创建了两个p:calendar组件和一个p:commandButton。

我的问题是,我设法验证日历,然后打开网址,但在同一个窗口中。如果我将ajax="false"设置为命令按钮,并将Target="_blank"设置为表单,则它将在新页面中打开URL,但如果日历值无效,则它还将在带有验证消息的新页面中打开原始页面。对于重定向,我在我的bean中使用FacesContext.get货币实例(). getExtranalContext().重定向(URL)。

我还尝试使用h:outputLink重定向,并将其值设置为bean。url和target=“\u blank”。它重定向到一个新页面,但在本例中,我没有设法验证日历。

我该怎么做<谢谢!

共有1个答案

蒋哲
2023-03-14

要么有条件地呈现一个

<h:form>
    <p:calendar validator="yourValidator" />
    <p:calendar validator="yourValidator" />
    <p:commandButton action="#{bean.submit}" update="@form" />
    <h:outputScript rendered="#{facesContext.postback and not facesContext.validationFailed}">
        window.open('someURL');
    </h:outputScript>
</h:form>

或使用PrimeFaces的请求上下文#执行()window.open()

public void submit() { 
    RequestContext.getCurrentInstance().execute("window.open('someURL');");
}

 类似资料:
  • 我正在设置闹钟的日历日期。闹钟时间设置了小时、分钟、格式和日期。我还想抓住现在的时间,比较两者之间的差异。所以,如果闹钟时间设置为周三,现在时间是周四,我想知道周四到周三之间有多少天。我还需要时间和分钟。 我尝试过每一个例子,但似乎都不管用。 JAVA方法 我确实尝试过这个。 这只是不太正确。它说是2天,所以我假设它是从闹钟日(星期二)到星期四(今天)。我需要的是从今天(星期四)到星期二。从现在起

  • 当有人试图访问需要身份验证的页面时,会重定向到登录页面。如何在成功登录后将它们重定向到所需页面,而不是默认链接?

  • 我有两个日期字段来收集用户的数据。需要使用codeigniter表单验证类来验证它。 场景: > 第一个日期字段可以为空 第二个日期字段不能为空 第一个日期字段不应大于今天的日期 第二个日期字段应大于第一个日期字段 美元这个- 美元这个- 回调函数是:

  • 我正在尝试从特定日历中读取我的Google日历事件,而无需在X小时/天之后重新验证仪表板。可能吗? 我添加了谷歌日历API到我的谷歌云平台项目,创建了桌面客户端(客户端和秘密),并可以通过python api访问我的日期: 但问题是,每次询问我的谷歌账户,这对于全天候运行的仪表板是不可能的。 亲切的问候 编辑:我在gcp使用标准的gmail帐号。我用一个服务帐户尝试过,但是如果我使用这个方法,结果

  • 结果应该是-1或1的int值,其中我的情况应该是:-1。 然而,这不是我想要的结果。我想能够比较日期直接说: 是否有一些基于日历库来实现这一点的方法?

  • import { Inlinecalendar } from 'feui'; components: { [Inlinecalendar.name]: Inlinecalendar } data () { return { show: true, value: ['2018-11-10','2018-11-11','2018-11-12'], lis