我正在创建一个自定义 Java Struts 标记,用于以标准化方式构建和格式化 html 选择框(我们的可用性指南的一部分)。
每个选择框都有一个附加/初始值,它描述了选择元素返回值的要求,即:
- 必填 - 带有“请选择”标签
- 可选 - “未选择”
- 全选 - “全选”
自定义标签将有一个属性来控制要使用的标签。
所以问题是,我需要想一个变量名来充分说明它是持有这三个值之一!
无论如何我都会对代码进行注释,但我更希望同事不必查找源代码来记住标记变量的用途。
编辑:为了解决这个问题,我在这里实现的可用性策略是,如果可以选择的项目超过 5 个,则选项应显示为一个选择盒子。 5 个或更少的项目将显示为单选按钮。
使用单选按钮时,不会显示强制性标签(如果没有选择任何值,表单验证会报错)。
最佳答案
注意:请参阅下面的编辑,了解与此处给出的方法不同的方法
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>
关于java - 我可以在这里使用什么描述性变量名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/199499/