1

我正在处理一个缺陷,如果使用多个通道,默认情况下需要选中所有复选框。但是,目前在多个通道选择第一个通道的情况下,复选框仅保持未选中状态

JSTL 代码是

<label data-use-main="#"
    class="left-align  form-inline checkbox ${fn:length(messageForm.configuredChannels) > 1 ? '' : 'hidden'}">
      <form:checkbox path="emailMessageForm.useMainMessageEmail" />&nbsp;&nbsp;
      <label>
        <spring:message code="message.use.main.content.email"></spring:message>
      </label>
</label>

我无法理解${fn:length(messageForm.configuredChannels) > 1 ? '' : 'hidden'}"> 复选框检查条件的工作原理取决于它。

4

1 回答 1

2

messageForm.configuredChannels是一个集合,该fn:length()函数正在检查该集合是否包含多个元素。如果集合包含多个元素,label则显示包含复选框,否则通过添加 css 类将其隐藏。

让我们分解表达式:

${fn:length(messageForm.configuredChannels) > 1 ? '' : 'hidden'}"

1.  ${}
    This just denotes a JSP EL expression

2.  fn:length(messageForm.configuredChannels) > 1 ? '' : 'hidden'
    This is a ternary operator

3.  fn:length(messageForm.configuredChannels)
    Returns amount of elements in collection
于 2013-09-19T08:48:27.467 回答