Uploaded image for project: 'Teeda'
  1. Teeda
  2. TEEDA-360

ConditionとValidatorの同時使用

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0.11
    • Component/s: None
    • Labels:
      None

      Description

      [Seasar-user:10342] [Teeda] ConditionとValidatorの同時使用は不可能ですか?

      ConditionとValidatorを同時に使用する事は不可能なのでしょうか?
      現在、以下の様な感じでConditionで表示/非表示を切り替えているTextboxに
      必須入力Validatorをかけているのですが、
      バリデーションでエラーになるとConditionでの表示/非表示が無効になり、
      全てのTextboxが表示されてしまいます。。。

      ・HTML
      <table>
      <span id="isDayReport">
      <tr>
      <td>
      <input id="inYearMonthDayFrom" />

      <input id="inYearMonthDayTo" />
      </td>
      </tr>
      </span>
      <span id="isNotDayReport">
      <tr>
      <td>
      <input id="inYearMonth" />
      </td>
      </tr>
      </span>
      </table>

      ・Java
      // フィールド(GetterとSetterは省略)
      private Date inYearMonthDayFrom;
      private Date inYearMonthDayTo;
      private Date inYearMonth;

      // Condition
      public boolean isDayReport() {
      // メソッドの中身は省略
      }

      // Validator
      public Validator getInYearMonthDayFromValidator() {
      // メソッドの中身は省略
      // (TRequiredValidatorを継承した自作Validatorで必須チェックを行う)
      }
      public Validator getInYearMonthDayToValidator() {
      // メソッドの中身は省略
      // (TRequiredValidatorを継承した自作Validatorで必須チェックを行う)
      }
      public Validator getInYearMonthValidator() {
      // メソッドの中身は省略
      // (TRequiredValidatorを継承した自作Validatorで必須チェックを行う)
      }

        Activity

        Hide
        shot shot added a comment -

        現象は再現した.
        isNotが悪さをしている模様.

        Show
        shot shot added a comment - 現象は再現した. isNotが悪さをしている模様.
        Hide
        shot shot added a comment -

        再現ケースコミットした.
        DynamicValidatorは関係ない.

        Show
        shot shot added a comment - 再現ケースコミットした. DynamicValidatorは関係ない.
        Hide
        shot shot added a comment -

        Conditionのベーシックな問題の部分は解決.
        ただしTEEDA-360自体はまだ.

        Show
        shot shot added a comment - Conditionのベーシックな問題の部分は解決. ただし TEEDA-360 自体はまだ.
        Hide
        shot shot added a comment -

        修正しました.

        Show
        shot shot added a comment - 修正しました.
        Hide
        shot shot added a comment -

        問題の対処が不十分だったので追記した.
        レイアウト適用時にAbstractIncludeRendererでコンポーネントツリーがクリアされてしまうので、
        それをRenderPreparable.postEncodeEnd()に移した.
        また、RenderPreparableで呼ばれる順番を、

        RenderPreparable.preEncodeBegin()
        -一番親のコンポーネント
        -子供をwalkしていき再帰的に呼び出す

        実際の描画
        -encodeBegin
        -encodeChildren
        -encodeEnd

        RenderPreparable.postEncodeEnd()
        -子供をwalkしていき再帰的に呼び出す.末端から呼ばれる
        -一番親のコンポーネント

        のように修正した.

        Show
        shot shot added a comment - 問題の対処が不十分だったので追記した. レイアウト適用時にAbstractIncludeRendererでコンポーネントツリーがクリアされてしまうので、 それをRenderPreparable.postEncodeEnd()に移した. また、RenderPreparableで呼ばれる順番を、 RenderPreparable.preEncodeBegin() -一番親のコンポーネント -子供をwalkしていき再帰的に呼び出す 実際の描画 -encodeBegin -encodeChildren -encodeEnd RenderPreparable.postEncodeEnd() -子供をwalkしていき再帰的に呼び出す.末端から呼ばれる -一番親のコンポーネント のように修正した.

          People

          • Assignee:
            shot shot
            Reporter:
            shot shot
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development