外部与内部JS - MBean值

时间:2015-09-06 20:00:38

标签: javascript xhtml jmx

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

示例:

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

&#13;
&#13;
//externaljs.js

function getString(){
   var string = "#{testMBean.getName()}";
   alert(string);
}
&#13;
&#13;
&#13;

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

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

我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

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

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

<script src="external.js></script>

<script>
  getString()
</script>

=====

// external.js
function getString() {
  alert(mBeanValues.string)
}

OR

<script src="external.js"></script>

<script>
  getString("#{testMBean.getName()}")
</script>

=====

// external.js
function getString(string) {
  alert(string)
}