3

標準化された方法で HTML 選択ボックスを構築およびフォーマットするためのカスタム Java Struts タグを作成しています (ユーザビリティ ガイドラインの一部)。

各選択ボックスには、選択要素によって返される値の要件を説明する追加/初期値があります。

  • 必須- 「選択してください」というラベル付き
  • オプション- 「未選択」
  • すべて選択- 「すべて選択」

カスタムタグには、これらのどれを使用するかを制御するプロパティがあります。

問題は、これら 3 つの値のいずれかを保持していることを適切に説明できる変数名を考える必要があるということです。
いずれにしてもコードにコメントを付けますが、同僚がタグ変数の目的を覚えておくためにソース コードを調べる必要がないようにしたいと思います。

編集:この問題に関連する状況を説明するために、ここで実装している使いやすさの戦略は、選択できる項目が 5 つを超える場合、オプションを選択ボックスとして表示することです。5項目以下はラジオボタンとして表示されます。
ラジオ ボタンが使用されている場合、必須のラベルは表示されません (値が選択されていない場合、フォームの検証で問題が発生します)。

4

4 に答える 4

6

注:ここで与えられたものとは異なるアプローチについては、以下の編集を参照してください

どうrequirementConstraintですか?

<my:customSelect requirementConstraint="Mandatory">
   <option value="1">A</option>
   <option value="2">B</option>
   <option value="3">C</option>
</my:customSelect>

もう 1 つの可能性は、最初から値をトライステートにしないことです。たとえば、代わりに ( ) と ( ) の 2 つの個別のプロパティrequired"yes" | "no"指定selectAll"yes" | "no"て、意図をより明確にすることができます。


編集:実際には、要件を正しく理解していれば、トライステートがどのように役立つかがわかります。もう 1 つの可能性は、プロパティを呼び出してmustSelect、許可された値one(必須)、any(オプション)、およびall(すべて選択) を作成することです。また、「すべて選択」が可能であるため、customSelectタグが各オプションをチェックボックスとしてレンダリングすると想定しています。使用方法の例mustSelect:

必須 (少なくとも 1 つ)

<my:customSelect mustSelect="one">
   <option value="1">A</option>
   <option value="2">B</option>
   <option value="3">C</option>
</my:customSelect>

オプション (0 個以上)

<my:customSelect mustSelect="any">
   <option value="1">A</option>
   <option value="2">B</option>
   <option value="3">C</option>
</my:customSelect>

すべて選択

<my:customSelect mustSelect="all">
   <option value="1">A</option>
   <option value="2">B</option>
   <option value="3">C</option>
</my:customSelect>
于 2008-10-14T00:30:35.033 に答える
3

「多様性」は正しい名前のようです。

次の値を説明しているようです。

必須: 1 オプション: 0+ すべて選択: n

于 2008-10-14T00:04:50.687 に答える
1

それは興味深い質問です。私はこれまで何度もこの状況に遭遇したに違いありませんが、そのように考えたことはありませんでした。

あなたの問題は、プログラミング言語が 3 方向のオプション (0、1、または多数) よりもはるかに優れた 2 方向のオプション (0 または 1) をサポートしていることです。「自然に」発生する短縮形は、一般にプログラミング言語から発生する短縮形であるため、3 方向オプションの「自然な」短縮形はありません。

KISS* の精神から、プロパティ名に "ZeroOneOrMany" を追加することをお勧めします。


[*] シンプルにしろよバカ!

于 2008-10-14T00:35:58.423 に答える
0

オプション性

必須/オプションは、これがオプションのフィールドであるかどうかにかかわらず、ブール値のように見えます。

Select Allはほとんど無関係のようであり、独自のプロパティである可能性があります。

于 2008-10-14T00:14:48.450 に答える