Использование тега 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 (макет) также многоразовым.

Я провел некоторые исследования и могу перечислить некоторые варианты:

  1. Используйте основанный на Java фреймворк, аналогичный основному ASP.NET. Я нашел несколько вариантов.

  2. Используйте угловые директивы и шаблоны. Проблема здесь в том, что вам нужно составить очень длинную строку, которая будет представлять HTML-часть. Это кажется странным. Я надеюсь, что есть способ сохранить повторно используемую часть HTML в отдельном файле и включить ее в директиву или что-то в этом роде.

  3. Используйте 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, чтобы сгенерировать начало компонента.

Другие вопросы по тегам