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

JSF-Primefaces-p:ajax-on-p:selectOneMenu-not-firing

段干瑞
2023-03-14

我有一个下拉列表,其中包含一个帐号和两个日期字段。如果我更改下拉列表的值,我想重置日期字段。我还有一个搜索按钮,可以使用这些字段(账户#,从日期,到日期)进行查询。

<fieldset>
    <p:selectOneMenu id="account_search" value="#{accountHistoryBean.account}" converter="accountConverter">
        <f:attribute name="itemsList" value="#{accountHistoryBean.userAccounts}"/>
        <f:selectItems value="#{accountHistoryBean.userAccounts}" var="account" itemLabel="#{account.number}" itemValue="#{account}"/> 
        <p:ajax update="start_date_search, end_date_search" event="change" actionListener="#{accountHistoryBean.resetDates}" process="account_search"/> 
    </p:selectOneMenu>
<fieldset>

<fieldset>
    <p:calendar value="#{accountHistoryBean.fromDate}" id="start_date_search" pattern="dd/MM/yyyy"/>
</fieldset>

<fieldset>
    <p:calendar value="#{accountHistoryBean.toDate}" id="end_date_search" pattern="dd/MM/yyyy"/>
</fieldset>



<fieldset>
    <p:commandLink styleClass="regular_button" action="#{accountHistoryBean.search}" update=":search :accountHistoryList :accountHistoryList:accountHistTable" >
        <span>#{msj.search}</span>
     </p:commandLink>
 </fieldset>

如果我执行以下操作:

  1. 更改"from Date"和"to Date"字段
  2. 更改帐户字段(使用ajax下拉)。

然后将日期重置为其默认值。

但如果我做以下事情:

  1. 将“from Date”和“to Date”字段更改为DATEX和DATEY
  2. 按搜索
  3. 将“from Date”和“to Date”字段更改为DATEX2和DATEY2
  4. 更改帐户字段(使用ajax下拉菜单)

然后将日期字段更改为DATEX和DATEY(不是默认值)。

Bean中的方法如下:

public void resetDates()
{
    Calendar calendar = GregorianCalendar.getInstance();
    //By default set toDate as 3/3
    calendar.set(Calendar.MONTH, 2);
    calendar.set(Calendar.DAY_OF_MONTH, 3);
    toDate = calendar.getTime();
    //By default fromDate is one month earlier
    calendar.setTime(toDate);
    calendar.add(Calendar.MONTH, -1);
    fromDate = calendar.getTime();
}

public String search(){
    //Just update the filters
    lazyDataEntityModel.setUpdateData(true);
    return null;
}

有什么帮助吗?

共有2个答案

弘承运
2023-03-14

正确的答案是关于转换器。检查h: selectOneMenu中的值属性!!没有正确映射。如果您仍然有疑问,请立即设置="true",这样就没有转换器或验证器会完成他们的工作。这就是我所做的,并且工作了......4-6小时后......:|

谢谢你关于转换器的想法,这是提示,为我提供了正确的答案。

章博耘
2023-03-14

我变了

<p:ajax update="start_date_search, end_date_search" 
        event="change" 
        actionListener="#{accountHistoryBean.resetDates}"
        process="account_search"/> 

对于

<p:ajax update="start_date_search, end_date_search" 
        event="change"
        listener="#{accountHistoryBean.resetDates}" 
        process="account_search"/> 

它成功了。

谢谢

 类似资料:
  • 我已经与celledit约会,ajax事件不会在单元格编辑时触发。事件监听器不会被调用。谢谢。 bean侦听器方法

  • 该场景是使用JSF和Primeface Mobile开发的移动页面。我想在多个页面之间的同一个xhtml页面中导航。当我单击主页中的按钮时,内容必须从第二页中的托管bean加载。我http://www.primefaces.org/showcase/mobile/navigation.xhtml遵循了这个示例,但我无法导航,我有以下消息“没有与viewIdmobile.xhtml匹配的导航用例,操

  • 我在我的UI上使用JSF的Primefaces。我对p:datatable上的ajax有一个特定的要求。这是我的项目的样本页面: 在这里,我有一个数据表,其中列出了创建的所有行。每行都有 id 和值。值是可编辑的。窗体中还有一个面板用于创建新行。后备 Bean 预先填充了所有创建的行,其中包含@PostConstruct。支持Bean有其他方法来编辑,取消和创建。此页面正在运行,下面给出的是新要求

  • 我与Spring的接触只有几个月,最近在浏览指南部分时遇到了Spring Boot。这些指南非常容易完成,并且能够很好地初步掌握项目的基本(也是很棒的)思想,即能够以最少的配置构建和部署企业级应用程序,同时坚持一系列Spring/JEE的良好实践。我真的对使用Spring Boot进行测试项目很感兴趣,因为有了它,设置和运行起来更容易、更快,而且仍然非常接近我的生产环境。我目前正在尝试用Sprin

  • JSF-2.0、Mojarra 2.1.19、PrimeFaces 3.4.1 问题摘要:在内部有一个和激发的inputText操作,该操作使用将dataTable行索引作为参数传递。但它总是传递dataTable的最后一行,而不是包含当前单击的的行的索引。 从我前面的问题中可以看出,我正在尝试使用作为一个状态的注释接受者,比如在Facebook等中。实现包括一个。它的行代表每种状态。好像是: 上

  • 问题内容: 使用JDK 1.6,JSF 2.1,PrimeFaces 2.2.1,POI 3.2和Apache Tomcat 7 我正在尝试设置一个servlet,以允许根据用户选择下载excel文件。excel文档是在运行时创建的。 没有错误,代码确实进入了servlet。 我单击按钮,没有任何反应。我没有使用PrimeFaces使用的数据表导出,因为我需要对Excel文档中的数据进行重新排序和