2013-09-19 2 views
1

Я работаю над дефектом, в котором по умолчанию все флажки должны быть выбраны, если используются несколько каналов. Однако, в настоящее время в случае нескольких каналов выбирает флажок кулака канала остается невыбранным толькоИспользование функции JSTL fn: length

Кодекс 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'}"> работает как флажок проверил состояние зависит от него ,

ответ

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 
+0

Спасибо за комментарий, однако вопросы, если коллекция содержит более одного элемента, то первый флажок всегда не установлен по умолчанию, он должен быть установлен по умолчанию , – ronan

+0

Gotcha, вам нужно использовать атрибут 'value' в теге checkbox. –

+0

Вы разместили в своей модели «emailMessageForm»? –

Смежные вопросы