2010-11-12 2 views

ответ

3

Это, по сути, способ избежать многократного копирования и вставки кучи HTML, а затем изменения дюжины мелких деталей в нем.

Исходным примером они дают в документации (которую я знаю, что вы читали, но I'l процитировать здесь для простоты ссылки) заключается в следующем:

<p> 
    <label>&{'user.name'}</label> 
    <input type="text" id="user_name" name="user.name" value="${user?.name}" class="${errors.forKey('user.name') ? 'has_error' : ''}"> 
    <span class="error">${errors.forKey('user.name')}</span> 
</p> 

Если вы представьте себе, начиная с этой разметкой на вашей странице, а затем добавив второе поле к форме, вам придется скопировать/вставить весь этот блок, а затем изменить &{'user.name'}, user_name, user.name, ${user?.name}, user.name и user.name (каждая отдельная ссылка на одно и то же основное поле) просто чтобы получить новую разметку для применения в новом поле.

И это только больше набирает текст, чем некоторые из нас готовы предпринять, просто добавив поле в форму проклятия.

Замена #{field 'foo'} позволяет это:

#{field 'user.name'} 
<p> 
    <label>&{field.name}</label> 
    <input type="text" id="${field.id}" name="${field.name}" value="${field.value}" class="${field.errorClass}"> 
    <span class="error">${field.error}</span> 
</p> 
#{/} 

Преимущество здесь состоит в том, что user.name появляется точно в одном месте. Если вы должны были скопировать/вставить этот разметки, чтобы добавить другое поле, вам нужно будет сделать только одну замену: одну в теге #{field ...}.

Конечным результатом является то, что для многих полей формы вы можете разработать стандартную разметку, не требуя при этом ручной замены заметок, имен, идентификаторов, текущих значений, сообщений об ошибках, классов, и т. д.

+0

Теперь я понял, это прокси - Спасибо! –

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