如何捕获在rich:modalpanel中输入的输入?

时间:2011-08-19 02:51:10

标签: jsf java-ee richfaces seam

我在搜索结果页面上有一个编辑按钮,按下该按钮会提示用户在继续下一页之前输入日期。

没有模态功能的按钮:

<h:commandButton action="#{controller.open(rec, false)}" />

不知何故,我想在打开页面之前引入一个模态diaglog,以便从模型对话框中获取输入日期并将其传递给open方法,如:

<h:commandButton onClick="openAModelDialog()" 
action="#{controller.open(rec, false, enteredDate)}" />

我可以使用SEAM 2.2,JSF和Richfaces。不确定如何最好地满足这种需求。

到目前为止我所取得的成就: 改变按钮以打开模态对话框。

<a4j:commandButton onclick="#{rich:component('mp')}.show(); return false;" 
action="#{controller.open(rec, false)}" />

设置模式对话框:

<rich:modalPanel id="mp" minHeight="300" minWidth="450">
    <f:facet name="header">
        <h:outputText value="Enter Signature Date" />
    </f:facet>
        <table>
        <tr>
        <td>Enter Signature Date:</td>
        <td>
        <rich:calendar disabled="#{readOnly}" 
                enableManualInput="false" converterMessage="'Signature Date' must be a date."
                datePattern="MM/dd/yyyy" 
                value="#{searchController.enteredSignatureDate}"
                ajaxSingle="false" showWeekDaysBar="false" showWeeksBar="false"
                requiredMessage="Please provide the Signature Date."/>
        <input type="button" onclick="#{rich:component('mp')}.hide()" value="Enter" />
        </td>
        </tr>
        </table>
</rich:modalPanel>

但现在我不知道如何捕捉输入的日期。

1 个答案:

答案 0 :(得分:1)

你能不能将你的第一个动作移到你的模态面板中?因此,而不是在你的模态面板中:

<input type="button" onclick="#{rich:component('mp')}.hide()" value="Enter" />
你有类似的东西:

<a4j:commandButton oncomplete="#{rich:component('mp')}.hide()" action="#{controller.open(rec, false)}" value="Enter" />

它必须在一个表单内才能工作。打开模态面板的第一个按钮可用于显示面板,而不会调用任何操作。如果模态形式不在与第一个按钮相同的形式内,那么您可以在显示模态面板时使用f:setPropertyActionListener来设置第一种形式的属性吗?