по некоторым причинам я пытаюсь перевести следующий код представления RoR в представление GSP:
List<Object> objects
содержит данные, которые я хочу отобразить в 3 столбцах
<%
modulo_objects = @objects.length % 3
base = @objects.length / 3
base = base.ceil
case modulo_objects
when 0
cols = [base, base, base]
when 1
cols = [base, base + 1, base]
when 2
cols = [base + 1, base, base + 1]
end
counter = 0
%>
<% 3.times do |i| %>
<td width="220" align="center" style="padding-right: 15px;">
<% cols[i].times do %>
<h1><a href="/objects/show/<%= @objects[counter].urlname %>" ><%= @objects[counter].name %></a></h1>
<% counter = counter + 1 %>
<% end %>
</td>
<% end %>
Вот что я получил до сих пор:
#{extends 'main.html' /}
%{
modulo_objects = objects.size() % 3
base = objects.size() / 3
base = Math.ceil(base)
if(modulo_objects == 0)
cols = [base, base, base]
else if(modulo_objects == 1)
cols = [base, base + 1, base]
else if(modulo_objects == 2)
cols = [base + 1, base, base + 1]
endif
counter = 0
}%
#{list items:1..3, as:'i'}
<td width="220" align="center" style="padding-right: 15px;">
#{list items:cols[i]}
<a href="@{Objects.show(objects.get(counter).name.replaceAll(" ", "-"))}" >${objects.get(counter).name}</a>
%{ counter = counter + 1 }%
#{/list}
</td>
#{/list}
Идея состоит в том, чтобы элементы были организованы в 3 столбца, например, 1 | 0 | 1 4 | 5 | 4 или 5 | 4 | 5,
Я не совсем понимаю, будет ли #{list items:cols[i]}
воспроизводить Ruby cols[i].times do
.
Пока представление Java не отображает более двух элементов.