2015-09-06 56 views
1

當我的javascript位於外部文件中時,我無法從MBean獲取值。外部vs內部JS - 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>

難道我做錯了什麼嗎?

回答

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) 
} 
+0

謝謝你,它工作得很好用的MBean值作爲參數。 – Otagamo