Использование тега JSP C в коде AngularJS
Примечание: я изменяю этот пост после того, как приобрел больше опыта работы с Angular и Java. Это сделано для того, чтобы не публиковать новый вопрос.
За последние несколько месяцев, работая с различными моделями для реализации повторно используемых частей AngularJS в коде JSP, наконец-то решили использовать директиву jsp include <%@include file="form-part.jsp" %>
, Это хорошо работает, и теперь единственной проблемой является проблема читабельности при использовании тегов Си.
Например, переменные определены в файле ресурсов Eclipse следующим образом:
Файл ресурса (.properties):
formhtml5.jsp.photoSubjectFront=Subject Front
formhtml5.jsp.photoSubjectStreet=Subject Street
formhtml5.jsp.photoSubjectRear=Subject Rear
Затем, чтобы использовать указанные выше переменные в Angular, я нашел следующий способ (поскольку вы должны использовать имя переменной внутри файла JSP):
HTML в файле JSP
<fmt:message key="formhtml5.jsp.photoSubjectFront" scope="request" var="photoSubjectFront"/>
<fmt:message key="formhtml5.jsp.photoSubjectStreet" scope="request" var="photoSubjectStreet"/>
<fmt:message key="formhtml5.jsp.photoSubjectRear" scope="request" var="photoSubjectRear"/>
...
...
<div class="photos-container"
ng-init="subjectPhotos =
[{fieldName:'subject_front',
title:'${photoSubjectFront}'},
{fieldName: 'subject_street',
title: '${photoSubjectStreet}'},
{fieldName: ''subject_rear,
title: '${photoSubjectRear}'}
]">
...
...
</div>
Если вы заметили, приведенный выше блок кода HTML не очень читабелен.
Каков наилучший способ инициализации массива subjectPhotos
переменная области видимости и использование переменной JSP ${photoSubjectFront}
в инициализации?
Я думал, смогу ли я сделать это в <script>
блок, который гораздо более читабелен, но я не был уверен, что получил доступ к переменной области внутри обычного блока скрипта.
Ценю ваши отзывы.
Старый пост:
Последние 3-4 месяца я разрабатывал приложения на основе форм, используя Angular. Я готовлюсь перейти к следующему этапу, чтобы я мог преобразовать разработанную форму (HTML5 + Script) в повторно используемые компоненты или части. Разработка была выполнена с использованием Eclipse, Java (JSP+Servlets) и, конечно, HTML5, JavaScript (Angular) и CSS.
В прошлом я успешно делал это, используя ASP.NET, мастер-страницы и пользовательские элементы управления.
То, что я ищу, - это способ создания модульных и повторно используемых частей формы как для HTML5, так и для кода, чтобы их можно было легко повторно использовать в другой форме, имеющей ту же часть, возможно с незначительными изменениями в макете и логике.
В настоящее время я делаю это, но только для кода. Мне удалось разработать угловые директивы, сервисы и контроллеры, которые фактически соответствуют моим ожиданиям с точки зрения возможности повторного использования. Единственная проблема сейчас заключается в том, как сделать HTML5 (макет) также многоразовым.
Я провел некоторые исследования и могу перечислить некоторые варианты:
Используйте основанный на Java фреймворк, аналогичный основному ASP.NET. Я нашел несколько вариантов.
Используйте угловые директивы и шаблоны. Проблема здесь в том, что вам нужно составить очень длинную строку, которая будет представлять HTML-часть. Это кажется странным. Я надеюсь, что есть способ сохранить повторно используемую часть HTML в отдельном файле и включить ее в директиву или что-то в этом роде.
Используйте JSP для разработки повторно используемой детали и включите ее в основную форму. Я могу использовать директиву включения JSP
<%@include file="form-part.jsp" %>
включить многоразовую часть формы.
Я оцениваю возможные варианты, чтобы выбрать наиболее подходящий.
Я надеюсь, что вы можете указать мне пример или учебник, который поможет мне выполнить это требование.
Примечание: я нашел хороший учебник, который станет отличным началом.
Ценю ваши отзывы.
Тарек
2 ответа
Лучший способ разработать форму для повторного использования - это использование html templateUrl. Вы, вероятно, используете функцию "шаблон"
return {
replace: true,
templateUrl: 'some_form_template.html',
// template: '<div>Hello World</div>'
}
Когда дело доходит до использования специальной проверки, вы также используете директивы для создания проверок: http://ng-learn.org/2014/02/Writing_Custom_Validitions/
Когда дело доходит до пометки ошибок, используйте директивы ng-messages/ng-message: https://docs.angularjs.org/api/ngMessages/directive/ngMessages
Этот вопрос уже задавался: как создать угловую директиву ввода, которая работает с проверкой формы
Если вы говорите angular2, который сейчас angularjs или angular.io, используйте компонент.
взгляните на angular-cli, используйте ng generate component yourform, чтобы сгенерировать начало компонента.