0

ユーザーがデータを入力できるようにする次のコードがあります。

<h:panelGrid columns="2" cellspacing="5">
    <h:outputLabel value="#{msg.FrequencyOfSpending}" />

    <h:selectOneMenu id="ruleFrequencyOptions" value="#{Rule.ruleControls.ControlOne.controlParams.Period.valueSelected}" styleClass="commonSelect">
        <f:selectItems value="#{Rule.ruleControls.ControlOne.controlParams.Period.validValues}" itemLabelEscaped="true" />
        <f:ajax event="valueChange" listener="#{Rule.ruleControls.ControlOne.controlParams.Period.valueSelectedChange}" onerror="handleAjaxError" render="rulesGroup" />
    </h:selectOneMenu>
</h:panelGrid>

<h:panelGroup id="rulesGroup">
    <a4j:repeat value="#{Rule.ruleParams.Action.properties}" var="RuleParamProperty" id="budgetRuleIterator">

        <h:panelGrid columns="4" cellspacing="5" columnClasses="ruleParamCheckbox, ruleParamAction, ruleParamActionFrequency, ruleParamActionInput">

        <h:selectBooleanCheckbox value="#{RuleParamProperty.selected}" immediate="true">
            <a4j:ajax event="click" listener="#{RuleParamProperty.selectedChange}"  onerror="handleAjaxError" />
        </h:selectBooleanCheckbox>

        <h:outputText value="#{msg[RuleParamProperty.name]}" />

        <h:panelGrid columns="3">
            <h:outputText value="#{msg.Action_1}" />
            <h:outputText value="#{msg[Rule.ruleControls.ControlOne.controlParams.Period.valueSelected]}" class="italic-text" />   
            <h:outputText value="#{msg.Action_3}" />
        </h:panelGrid>

        <h:inputText value="#{RuleParamProperty.inputValue}" />

        </h:panelGrid>

    </a4j:repeat>
</h:panelGroup>

<!--******* Link here to generate row with exact same format as all code above ***-->
<h:panelGrid columns="2">
    <img id="AddIcon" src="#{facesContext.externalContext.requestContextPath}/images/icons/add.png" alt="#{msg.addControl}" />
    <h:link value="#{msg.addControl}" />
</h:panelGrid>

このデータのさまざまなバリエーションを追加できるようにリンクを追加する必要があります。つまり、ユーザーがクリックして新しいコントロールリンクを追加すると、新しい行が表示され、(まったく同じ形式の) より多くのデータを入力できるようになります。同じデータの複数の行を追加できる必要があります。

JSF2 と Richfaces4 でこれにアプローチする最良の方法は何ですか? panelGroups をテーブル内に配置する必要がありますか?

ありがとう

4

1 に答える 1