【问题标题】:Read properties file using jQuery or JavaScript使用 jQuery 或 JavaScript 读取属性文件
【发布时间】:2013-12-23 08:22:31
【问题描述】:

我是 jquery 的新手。我想使用 javascript 或 jquery 在我的 jsp 页面中读取 Java 属性文件。我对此很满意,但并不满意。

我的应用程序是由 Struts2、Eclipse Juno 和 Windows7 开发的。这是我的javascript

 function checkedRadioForDelete(f) {
    var chx = document.getElementsByTagName('input');
    for ( var i = 0; i < chx.length; i++) {
        if (chx[i].type == 'radio' && chx[i].checked) {
            var con = confirm("Are you sure to delete?");
            if (con != true) {
            } else {
               f.action = "MyAction.action";
               f.submit();
             }
            return true;
         }
    }
    alert("Please select one.");
    return false;
 }

这是我的属性文件

msg.confirm=Are you sure to delete?
msg.alert=Please select one.

我想从属性文件中读取 confirmalert 框值。那么使用 Ajax 或 jquery 或 javascript 是否可行?

【问题讨论】:

  • Javascript(在客户端)必须使用 AJAX 读取它。你为什么要用javascript来做呢?显示一些代码以阐明您的需求。如果你不能想出一些代码,你需要更多地考虑你想要做什么。
  • @JuanMendes 请查看我的更新帖。
  • 您的意思是您在属性文件中有一个要删除的内容列表,并且您想要一堆复选框来删除它们中的每一个?请澄清你的问题。显示您的属性文件以及您希望 HTML 执行的操作。

标签: java javascript jquery struts2


【解决方案1】:

如果有人需要有关 Web 应用程序的帮助,请参阅我的 answer,它解释了从项目目录中的属性文件读取属性的最简单方法。 总之,您将能够在隐藏输入中填充一些选定的属性,然后从 JavaScript 中读取隐藏的输入值。

【讨论】:

    【解决方案2】:

    不应在 JSP 中使用 scriptlet,您可以使用 struts2 标签轻松做到这一点。

    在 JSP 中更改您的 Javascript 如下:

    function checkedRadioForDelete(f) {
        var chx = document.getElementsByTagName('input');
        for ( var i = 0; i < chx.length; i++) {
            if (chx[i].type == 'radio' && chx[i].checked) {
                var con = confirm("<s:text name="msg.confirm"/>");
                if (con != true) {
                } else {
                   f.action = "MyAction.action";
                   f.submit();
                 }
                return true;
             }
        }
        alert("<s:text name="msg.alert"/>");
        return false;
     }
    

    【讨论】:

      【解决方案3】:
      Note: Updating my answer based on comments.
      
      In your JSP page you can use scriptlets within javascript function (or tag) 
      
      function checkedRadioForDelete(f) {
          var confirmMessage = '<%= properties.getProperty("confirm.message") %>';
          var alertMessage= '<%= properties.getProperty("alert.message") %>';
                  var chx = document.getElementsByTagName('input');
                  for ( var i = 0; i < chx.length; i++) {
                      if (chx[i].type == 'radio' && chx[i].checked) {
                          var con = confirm(confirmMessage);
                          if (con != true) {
                          } else {
                             f.action = "MyAction.action";
                             f.submit();
                           }
                          return true;
                       }
                  }
                  alert(alertMessage);
                  return false;
               }
      

      【讨论】:

      • “始终”是指在 JSP 服务器上运行时?
      【解决方案4】:

      您可以使用我创建的 messageResource.js 库通过 javascript 加载属性。

      1) 包含 messageResource.js。

      <script src="messageResource.min.js"></script>
      

      2) 如下更改javascript。

      // initialize messageResource.js  
      messageResource.init({
          // path to directory containing properties files
          filePath : 'path/resource'
      });
      
      function checkedRadioForDelete(f) {
      
          // get values from properties files
          var confirmMsg = messageResource.get('msg.confirm', 'fileName');
          var alertMsg = messageResource.get('msg.alert', 'fileName');
      
          var chx = document.getElementsByTagName('input');
          for ( var i = 0; i < chx.length; i++) {
              if (chx[i].type == 'radio' && chx[i].checked) {
                  var con = confirm(confirmMsg);
                  if (con != true) {
                  } else {
                      f.action = "MyAction.action";
                      f.submit();
                  }
                  return true;
              }
          }
          alert(alertMsg);
          return false;
      }
      

      【讨论】:

      • 谢谢。它对我有用,没有什么问题。第一次加载页面时它对我不起作用。页面加载后,它就可以工作了。你知道我错过了什么吗?我在文档就绪函数中包含了 init 和 load 方法。
      猜你喜欢
      • 2013-02-10
      • 2017-09-04
      • 2022-01-07
      • 1970-01-01
      • 2016-09-08
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多