当我的javascript在外部文件中时,我无法从MBean获取值。
示例:
<script src='scripts/externaljs.js' type='text/javascript' />
<script>
getString();
<script>
//externaljs.js
function getString(){
var string = "#{testMBean.getName()}";
alert(string);
}
&#13;
它始终返回&#34;#{testMBean.getName()}&#34;而不是字符串值。 但是,如果我在我的.xhtml文件中声明它,它将返回正确的值。
<script>
var string = "#{testMBean.getName()}";
alert(string);
</script>
&#13;
我在这里做错了吗?
答案 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)
}