外部与内部 JS - MBean 值
External vs Internal JS - MBean value
当我的 javascript 位于外部文件中时,我无法从 MBean 获取值。
示例:
<script src='scripts/externaljs.js' type='text/javascript' />
<script>
getString();
<script>
//externaljs.js
function getString(){
var string = "#{testMBean.getName()}";
alert(string);
}
它总是 returns "#{testMBean.getName()}" 而不是字符串值。
但是如果我在我的 .xhtml 文件中声明它 returns 正确的值。
<script>
var string = "#{testMBean.getName()}";
alert(string);
</script>
我是不是做错了什么?
这是因为您的 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)
}
当我的 javascript 位于外部文件中时,我无法从 MBean 获取值。
示例:
<script src='scripts/externaljs.js' type='text/javascript' />
<script>
getString();
<script>
//externaljs.js
function getString(){
var string = "#{testMBean.getName()}";
alert(string);
}
它总是 returns "#{testMBean.getName()}" 而不是字符串值。 但是如果我在我的 .xhtml 文件中声明它 returns 正确的值。
<script>
var string = "#{testMBean.getName()}";
alert(string);
</script>
我是不是做错了什么?
这是因为您的 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)
}