JSF h:在ajax调用

时间:2017-01-05 12:00:52

标签: jsf primefaces jsf-2.2

我有一个h:inputHidden字段,其值需要通过ajax调用进行更新。我尝试在f:ajax元素中使用h:inputHidden标记,但它不起作用(在<f:ajax>标记中提示您无法使用h:inputHidden时出错。

<h:panelGroup id="datesSelectPanel" styleClass="form-group">
  <div class="col-md-8">
    <div id="dateSelector" class="col-md-4"></div>
      <div class="col-md-offset-1 col-md-1">
        <h:commandLink id="selectedDates" styleClass="btn default" style="margin: 90px 0 0 0;">
         <i class="fa fa-forward"></i>
         <p:ajax process="pickerHiddenPanel" onstart="loadSelectedDates()"/>
        </h:commandLink>
    </div>
    <h:panelGroup id="dateSelectPanel" class="col-md-4">
      <h:panelGroup id="pickerHiddenPanel" styleClass="ulSelectedDatesHidden">
        <h:inputText id="sDates" value="#{managedBean.selectedDates}" style="display:none;" />
      </h:panelGroup>
      <ul style="width: 150px; height: 220px;" class="pull-left" id="ulSelectedDates"></ul>

DOM元素ID

  1. dateSelector - 是一个多日期选择器
  2. selectedDates - 是一个通过javascript填充列表ulSelectedDates的按钮
  3. sDates - 应该存储日期选择器值的隐藏字段 托管bean。
  4. 所以这就是发生的事情, 我从多日期选择器(Bootstrap)中选择多个日期,然后单击按钮以填充日历旁边的框。完成后,#{managedBean.selectedDates} bean值未按预期更新。我使用Javascript来填充列表,使用函数loadSelectedDates()<li>元素添加到<ul>

    我需要捕获托管bean中的日期选择。有办法解决这个问题吗?感谢帮助。

    P.S:我在另一篇文章中建议使用了h:inputText也没有用,这就是为什么你看到h:inputText而不是h:inputHidden

1 个答案:

答案 0 :(得分:0)

根据发布的代码:

  • 您没有在DOM
  • 中填充<h:inputText id="sDates"/>的值 转换ConverterException 的值时会抛出
  • <h:inputText id="sDates"/>