Pregunta

Estoy creando una etiqueta Java Struts personalizada que es para construir y formatear un cuadro de selección html de forma estandarizada (parte de nuestras pautas de usabilidad).

Cada cuadro de selección tiene un valor adicional / inicial que describe el requisito del valor devuelto por el elemento de selección, es decir:

  • Obligatorio - con la etiqueta "Seleccione"
  • Opcional - " Ninguno seleccionado "
  • Seleccionar todo - " Seleccionar todo "

La etiqueta personalizada tendrá una propiedad que controla cuál de estos se utilizará.

¡Entonces el problema es que necesito pensar en un nombre de variable que pueda explicar adecuadamente que contiene uno de estos tres valores!
En cualquier caso, comentaré el código, pero preferiría que los compañeros de trabajo no tuvieran que buscar el código fuente para recordar cuál es el propósito de la variable de etiqueta.

Editar: Para poner un poco de contexto a este problema, la estrategia de usabilidad que estoy implementando aquí es que si hay más de 5 elementos que se pueden seleccionar, las opciones deberían aparecer como una selección caja. 5 o menos elementos aparecerán como botones de radio.
Cuando se utilizan los botones de opción, no se mostrará la etiqueta obligatoria (la validación del formulario se quejará si de todos modos no hay ningún valor seleccionado).

¿Fue útil?

Solución

NOTA: consulte EDITAR a continuación para obtener un enfoque diferente al que se ofrece aquí

¿Qué tal requireConstraint ?

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

Otra posibilidad es no triplicar el valor en primer lugar. Por ejemplo, puede proporcionar dos propiedades separadas: obligatorio ( " yes " | " no " ) y selectAll ( " yes " | " no " ) para aclarar la intención.


EDITAR : En realidad, puedo ver cómo un tri-estado aún podría ser útil, si entiendo sus requisitos correctamente. Otra posibilidad sería llamar a la propiedad mustSelect y hacer que los valores permitidos one (obligatorio), any (opcional) y all (seleccionar todo). Además, desde " Seleccionar todo " es una posibilidad, supongo que su etiqueta customSelect representa cada opción como una casilla de verificación. Un ejemplo de cómo se puede usar mustSelect :

Obligatorio (al menos uno)

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

Opcional (cero o más)

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

Seleccionar todo

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

Otros consejos

'multiplicidad' parecería el nombre correcto.

Parece que estás describiendo los siguientes valores:

Obligatorio: 1 Opcional: 0+ Seleccionar todo: n

Esa es una pregunta interesante. Debo haber encontrado esta situación muchas veces antes, pero nunca pensé realmente en eso de esa manera.

Su problema es que su lenguaje de programación admite opciones de dos vías (por ejemplo, cero o uno) mucho mejor que las opciones de tres vías (cero, uno o muchos). La taquigrafía que surge "naturalmente" es generalmente la taquigrafía que surge del lenguaje de programación, por lo que no hay "natural" taquigrafía para opciones de tres vías.

En el espíritu de KISS *, le sugiero que agregue " ZeroOneOrMany " al nombre de la propiedad.


[*] ¡Hazlo simple, estúpido!

opcionalidad

Obligatorio / Opcional parece un booleano si este es un campo opcional.

Seleccionar todo casi no parece estar relacionado y podría ser su propia propiedad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top