[Seasar-user:18759] Re: [Ymir] Validate後に、該当textboxのスタイルを変更したい

kubo [E-MAIL ADDRESS DELETED]
2009年 10月 23日 (金) 19:09:39 JST


久保(jflute)です。

dbflute-ymir-exampleでもやってますよ。
「テキストボックスの色を変える」ではなく、
「ラベルの色を変える」ですが。

// 会員名称というラベルのclass属性を差し替え
<label tal:attributes="class notes/contains(memberName) ?
string:label-invalid : default" class="label-normal">
	会員名称(*)
</label>

// その機能を使ったExample(会員編集:入力)
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-ymir-example/src/main/webapp/member/edit/input.html

2009/10/23 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> 西山(hajimeni)です。
>
> 丁寧にありがとうございます。
> やりたいことが完全に実現できました。
>
> サンプルにあったのですね。見逃しておりました。申し訳ありません。
> dbfluteも使っていましたので、dbflute-ymir-example だけ参照し
> ておりました。
>
> ymir-example-generic を参考にさせていただきます。
>
>
> 以上よろしくお願いいたします。
>
> [2009/10/23 16:37] YOKOTA Takehiko さんは書きました。:
>> 横田です。
>>
>>> YmirでValidateを行った後、該当のテキストボックスのスタイルを
>>> 変更したいと思っております。(該当箇所が分かるように背景が赤
>>> くなるなど)
>>>
>>> Teedaでいえば、ここの機能となります。
>>> http://teeda.seasar.org/ja/extension/reverse/validation.html#%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%9F%E9%A0%85%E7%9B%AE%E3%81%8C%E7%9B%AE%E7%AB%8B%E3%81%A4%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF
>>
>> バリデーションエラーとなったテキストボックスのスタイルを変更するのでしたら、
>> <input>タグに
>>
>>   tal:attributes="class string:error-${notes/contains(XXX)}"
>>
>> (XXXはリクエストパラメータ名)
>>
>> という属性をつけることで、バリデーションエラー発生時に「error-true」、
>> 発生していない時に「error-false」というclass名がつくようになります。
>>
>> 仕組みですが、バリデーションエラーが発生した場合、バリデーションエラー
>> 情報を持つNotesオブジェクトがリクエストスコープに「notes」という名前で
>> バインドされます。
>>
>> ZPTで「notes/contains(XXX)」とすると、リクエストスコープの「notes」
>> という名前のオブジェクトのcontainsメソッドが(引数にXXXが渡されて)
>> 呼び出されます。Notesオブジェクトが存在する場合は、contains(XXX)の
>> 結果は「XXXというパラメータについてエラーが発生していればtrue、
>> していなければfalse」となりますので、XXXについてエラーが発生していれ
>> ば${...}の部分が"true"になり、エラーが発生していなければ"false"にな
>> る、というわけです。
>>
>> なお、バリデーションエラーが1つも発生しなかった場合はnotesという名前
>> でリクエストスコープからオブジェクトは取れませんが、その場合「notes/contains(XXX)」
>> という式の評価結果は"false"となります。
>>
>> このあたりのサンプルがymir-example-genericにありますのでみてみてくだ
>> さい。
>>
>> ソース:https://www.seasar.org/svn/ymir/example/trunk/ymir-example-generic/
>> 最新のwar:http://maven.seasar.org/maven2-snapshot/org/seasar/ymir/example/ymir-example-generic/1.0.7-SNAPSHOT/ymir-example-generic-1.0.7-20091023.073027-1.war
>>
>> 「テキストボックス」というサンプルが参考になると思います。
>> http://localhost:8080/ymir-example-generic/text/index.html
>>
>> 以上よろしくお願いします。
>>
>>
>> 西山 はじめ さんは書きました:
>>> お世話になっております。
>>> 西山(hajimeni)です。
>>>
>>> 現在、以下の環境でYmirアプリケーションの開発を行っております。
>>>
>>> Ymir:1.0.5
>>> DBFlute:0.9.5.5
>>> S2Container:2.4.20
>>>
>>> OracleApplicationServer10g(10.1.3.4)
>>> OracleDatabase10g
>>>
>>> YmirでValidateを行った後、該当のテキストボックスのスタイルを
>>> 変更したいと思っております。(該当箇所が分かるように背景が赤
>>> くなるなど)
>>>
>>>
>>> Teedaでいえば、ここの機能となります。
>>> http://teeda.seasar.org/ja/extension/reverse/validation.html#%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%9F%E9%A0%85%E7%9B%AE%E3%81%8C%E7%9B%AE%E7%AB%8B%E3%81%A4%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF
>>>
>>> Ymirを使用する上で、こういった機能を実装する為のValidationの
>>> 結果の情報は取得できるでしょうか。
>>>
>>> _prerender時に、Validate結果がわかれば何とかなりそうではある
>>> のですが・・・
>>>
>>> 何かいい方法がありましたら、教えていただきたいと思います。
>>>
>>>
>>> 以上よろしくお願いいたします。
>>>
>>
>>
>
>
> --
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  西山 はじめ
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内