javascript - 在 JSP 标记中使用 JavaScript

标签 javascript jsp jsp-tags

我看过 this question重新导入与标签内容本身相关的 js 文件。我有一个类似的问题,这里我有一个生成一些 HTML 的 jsp 标签,并且有一个通用的 js 实现来处理这个 HTML 的行为。此外,我需要编写一些初始化语句,以便之后可以通过 JavaScript 使用它。为了能够在我的 JavaScript 中使用这个“处理程序”,它应该可以通过某种方式访问​​。

问题是...为了实例化和初始化目的,将内联 <script> 标记与我的 HTML 一起编写是否可以(我个人认为它不是很优雅)?关于 JS 世界的可访问性,我是否应该留下一个引用我的处理程序对象的全局变量(我认为也不是很优雅),有更好的方法吗?

最佳答案

您应该争取在自己的文件中使用 javascript。这通常用 Progressive Enhancement 完成。 .但有时您别无选择,例如当同一个 JSP 以不同语言呈现页面时。这是一个真实的例子:

JSP:

  <script src="/javascript/article_admin.js"></script>  
  <script type="text/javascript">  
      NP_ArticleAdmin.initialize({  
            text: {  
              please_confirm_deletion_of: '<i18n:output text="please.confirm.deletion.of"/>',  
              this_cannot_be_undone: '<i18n:output text="this.cannot.be.undone"/>'  
            }  
      });  
  </script>  

javascript (article_admin.js):

 /*global NP_ArticleAdmin, jQuery, confirm */  
 NP_ArticleAdmin = function ($) {  
     var text;  

     function delete_article(event) {  
         var article = $(this).parents("li.article"),  
         id = article.attr("id"),  
         name = article.find("h3.name").html();  
         if (confirm(text.please_confirm_deletion_of + name + text.this_cannot_be_undone)) {  
             $.post("/admin/delete_article", {id: id});  
             article.fadeOut();  
         }  
         event.preventDefault();  
         return false;  
     }  

     function initialize(data) {  
         text = data.text;  
         $("#articles a.delete").click(delete_article);  
     }  

     return {initialize: initialize};  
 }(jQuery);

在此示例中,JSP 文件中唯一的 javascript 是需要存在的部分。核心功能在其自己的 js 文件中分离。

关于javascript - 在 JSP 标记中使用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/229726/

相关文章:

javascript - zimbra zimlet 从后端上传公文包文件夹中的文件

java - JSP 调用片段与标记文件中的打印变量

javascript - 将数据与 HTML 元素相关联(不使用 jQuery)

javascript - 在我的本地硬盘上将 dygraph 图表保存为 jpg 图像

java - 在jsp文件中导入java类时出错

java - 通过连接防止 Oracle 数据库错误

java - <jsp :forward> or <jsp:include> actions in a JSP needs buffering to be enabled?

struts2 - 找不到 key 时更改 Struts 2、i18n 类行为

javascript - 如何防止 Javascript 中的多次按键

javascript - Angular 2 get .length 但仅计算 html 或 ts 组件中的特定数据