代码之家  ›  专栏  ›  技术社区  ›  Otagamo

外部与内部JS-MBean值

  •  1
  • Otagamo  · 技术社区  · 9 年前

    当javascript位于外部文件中时,我无法从MBean获取值。

    例子:

    <script src='scripts/externaljs.js' type='text/javascript' />
    <script>
       getString();
    <script>
    

    //externaljs.js
    
    function getString(){
       var string = "#{testMBean.getName()}";
       alert(string);
    }

    它总是返回“#{testMBean.getName()}”而不是字符串值。 但如果我在.xhtml文件中声明它,它将返回正确的值。

    <script>
       var string = "#{testMBean.getName()}";
       alert(string);
    </script>

    我在这里做错什么了吗?

    1 回复  |  直到 9 年前
        1
  •  0
  •   azium    9 年前

    这是因为MBean值仅在视图中被替换。如果您希望外部JavaScript文件看到这些值,可以将它们存储在数组/对象中,或将它们作为参数传递。

    <script>
      var mBeanValues = {
        string: "#{testMBean.getName()}"
      }
    </script>
    
    <script src="external.js></script>
    
    <script>
      getString()
    </script>
    
    =====
    
    // external.js
    function getString() {
      alert(mBeanValues.string)
    }
    

    <script src="external.js"></script>
    
    <script>
      getString("#{testMBean.getName()}")
    </script>
    
    =====
    
    // external.js
    function getString(string) {
      alert(string)
    }