jsp页面输出中的Javascript';正确';当在函数中定义var时

jsp页面输出中的Javascript';正确';当在函数中定义var时,javascript,jsf,Javascript,Jsf,我有一个使用javascript的网页。代码示例: <script type="text/javascript"> var shown = 0; function showOrHidePanel() { var isComplete = '<h:outputText value="#{general.sessionCompleted}" />'; if (isComplete == true){ if (shown==0) {

我有一个使用javascript的网页。代码示例:

<script type="text/javascript">
var shown = 0;

function showOrHidePanel()
{
    var isComplete = '<h:outputText value="#{general.sessionCompleted}" />';

    if (isComplete == true){
        if (shown==0) {
            Richfaces.showModalPanel('pnl',{width:550, top:200});
        }
        shown = 1;
    } else {
        if (shown == 1) {
            Richfaces.hideModalPanel('pnl');
        }
        shown = 0;
    }
    return;
}
</script>

<a4j:region>
    <h:form>
        <a4j:poll id="poll" interval="10000" reRender="pnl" action="#{general.checkOnDrcSession}"
            oncomplete="showOrHidePanel()" />
    </h:form>
</a4j:region>

var=0;
函数showOrHidePanel()
{
var isComplete='';
如果(isComplete==true){
如果(显示==0){
showModalPanel('pnl',{宽度:550,顶部:200});
}
所示=1;
}否则{
如果(显示==1){
Richfaces.hideModelPanel(“pnl”);
}
所示=0;
}
回来
}
我试图实现的效果是,每当
sessionCompleted
变为true时,轮询组件只显示一次modalpanel(因此它不会在每次重新显示modalpanel时显示闪烁的页面效果)。 但是我是一个javascript新手,我担心,除了这个不能正常工作之外,我会在页面顶部得到一个“真实”文本


当我取下var
isComplete='时,尝试将isComplete更改为:

var isComplete = Boolean("#{general.sessionCompleted}");

这(理论上)应该根据服务器呈现的文本创建一个布尔值。

去掉那些单引号

var isComplete = <h:outputText value="#{general.sessionCompleted}" />;
而不是与

var isComplete = 'true'; // or 'false'
在生成的输出中

或者,你也可以这样做

if (<h:outputText value="#{general.sessionCompleted}" />) {
if(){

没错,Ben使用的是JSP,而不是Facelets.gotcha,我的错。我对其他web框架的经验让我相信{}足以访问服务器端变量。TnX@BalusC,我仍然在网页上看到“真”(或“假”)文本。有什么具体的东西我应该在标签上排序吗?
if (<h:outputText value="#{general.sessionCompleted}" />) {