3

我正在创建一个自定义 Java Struts 标记,用于以标准化方式构建和格式化 html 选择框(我们的可用性指南的一部分)。

每个选择框都有一个附加/初始值,它描述了选择元素返回值的要求,即:

  • 强制性- 带有“请选择”标签
  • 可选- “未选择”
  • 全选- “全选”

自定义标记将具有一个属性,该属性控制要使用哪些。

所以问题是,我需要想出一个可以充分解释的变量名,它持有这三个值之一!
无论如何我都会评论代码,但我希望同事不必查找源代码来记住标记变量的用途。

编辑:为了解决这个问题,我在这里实施的可用性策略是,如果可以选择的项目超过 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>

另一种可能性是首先不要对价值进行三态化。例如,您可以改为提供两个单独的属性:( required)"yes" | "no"selectAll( "yes" | "no") 以使意图更清晰。


编辑:实际上,如果我正确理解您的要求,我可以看到三态仍然有用。另一种可能性是调用属性mustSelect并设置允许的值one(强制)、any(可选)和all(全选)。此外,由于“全选”是可能的,我假设您的customSelect标签将每个选项呈现为一个复选框。如何使用的示例mustSelect

强制性(至少一项)

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

可选(零个或多个)

<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

这是一个有趣的问题。我以前一定遇到过很多次这种情况,但从来没有这样想过。

您的问题是您的编程语言支持双向选项(例如零或一)比三向选项(零一或多)好得多。“自然”出现的速记一般是编程语言出现的速记,所以三向选项没有“自然”的速记。

本着 KISS* 的精神,我建议您将“ZeroOneOrMany”附加到属性名称中。


[*] 保持简单,愚蠢!

于 2008-10-14T00:35:58.423 回答
0

选择性

Mandatory/Optional 似乎是一个布尔值,这是否是一个可选字段。

Select All 几乎看起来不相关,可能是它自己的属性。

于 2008-10-14T00:14:48.450 回答