java - 在 AngularJS 代码中使用 JSP C 标签

标签 java angularjs html jsp code-reuse

注意:在我获得更多使用 Angular 和 Java 的经验后,我正在修改这篇文章。这是为了避免发布新问题。

在过去的几个月里,使用不同的模型在 JSP 代码中实现可重用的 AngularJS 部分,最终决定使用 jsp include 指令 <%@include file="form-part.jsp" %> 。这效果很好,现在唯一的问题是使用 C Tags 时的可读性问题。 .

例如,在Eclipse资源文件中定义变量如下:

资源文件(.properties):

formhtml5.jsp.photoSubjectFront=Subject Front
formhtml5.jsp.photoSubjectStreet=Subject Street
formhtml5.jsp.photoSubjectRear=Subject Rear

然后,为了在 Angular 中使用上述变量,我发现的一种方法如下(因为您必须在 JSP 文件中使用变量名称):

JSP 文件中的 HTML

<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> 中做到这一点 block 更具可读性,但我不确定是否访问普通脚本 block 内的范围变量。

感谢您的反馈。

旧帖子:

过去 3-4 个月我一直在使用 Angular 开发基于表单的应用程序。我正准备进入下一阶段,以便我可以将开发的表单(HTML5 + 脚本)转换为可重用的组件或部分。开发是使用 Eclipse、Java (JSP+Servlet),当然还有 HTML5、JavaScript (Angular) 和 CSS 完成的。

过去,我曾使用 ASP.NET、母版页和用户控件成功完成此任务。

我正在寻找一种为 HTML5 和代码创建模块化且可重用的表单部件的方法,以便它们可以轻松地在具有相同部件的另一种表单中重用,而布局和逻辑可能会发生微小的变化。

我目前正在这样做,但仅限于代码。我成功地开发了 Angular 指令、服务和 Controller ,它们在可重用性方面实际上达到了我的期望。现在唯一的问题是如何使 HTML5(布局)也可重用。

我做了一些研究,我可以列出一些选项:

  1. 使用基于 Java 的框架,类似于 ASP.NET 母版页。我找到了几种选择。

  2. 使用 Angular 指令和模板。这里的问题是您必须编写一个非常长的字符串来表示 HTML 部分。它认为这很令人困惑。我希望有一种方法可以将可重用的 HTML 部分保存在单独的文件中,并将其包含在指令或类似的内容中。

  3. 使用JSP开发可重用部分,并将其包含在主窗体中。我可以使用 jsp include 指令 <%@include file="form-part.jsp" %>包括可重复使用的表单部分。

我正在评估可能的选项以选择最合适的一个。

我希望您能给我指出一些示例或教程来帮助我实现此要求。

注意:我发现很好tutorial这将是一个良好的开始。

感谢您的反馈。

塔里克

最佳答案

开发可重用表单的最佳方法是使用 html templateUrl 的指令。 您可能正在使用"template"功能

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

此问题已被提问:How to create a angular input directive that works with form validation

关于java - 在 AngularJS 代码中使用 JSP C 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41725045/

相关文章:

java - 使用文件写入器线程初始化的缓冲写入器写入文件是否安全?

java - Mockito 验证仅调用了预期的方法

javascript - 为什么我的 ng-controller 没有被调用?

javascript - 通过 HTML5 Canvas Context 缩放并在给定图像上绘制网格

java - Jooq Postgres 可变位

java - 在插入表之前清理数据

javascript - 重新实例化 AngularJS 计时器

javascript - 附加到与 Angular.JS 指令关联的数组

javascript - 如何在html字符串中添加一些东西

html - 表行上的 z 索引不起作用