无法通过javascript调用检索托管bean属性

时间:2013-05-03 21:39:23

标签: javascript jsf

我试图通过我的JSF facelet Javascript调用从托管bean中检索属性值,但是我没有从托管bean中获取值。

我的托管bean已设置为isPreviewScreen = false,但也包含getter和setter。 有人可以帮忙吗?

这两个警报都没有在下面的代码中给我一个值。

<script type="text/javascript">
function #{facesContext.externalContext.response.namespace}verifyStatus(data){
  alert("#{contactBean.isPreviewScreen}");
  if (data.isPreviewScreen){
    alert(data.isPreviewScreen);
     $("##{facesContext.externalContext.response.namespace}previewScreenHeaderAlert").dialog();
  }else{
     $("##{facesContext.externalContext.response.namespace}previewScreenHeaderArea").show();
   }
};
</script>

以下是我在表单中的内容:

<h:commandLink action="#{contactBean.loadPreviewScreenContents}">
                                <h:outputText title="#{crs.dateTime}" value="#{crs.dateTime}">
                                    <f:convertDateTime pattern="MM/dd/yyyy hh:mm a" type="date" />

                                </h:outputText>
                                <f:setPropertyActionListener target="#{contactBean.crs}" value="#{crs}" />
                                <f:ajax render=":form1:previewScreenHeader" onevent="#{facesContext.externalContext.response.namespace}verifyStatus"/>

                            </h:commandLink>

2 个答案:

答案 0 :(得分:1)

data.isPreviewScreen更改为#{data.isPreviewScreen},如下所示:

<script type="text/javascript">
function #{facesContext.externalContext.response.namespace}verifyStatus(data){
  alert("#{contactBean.isPreviewScreen}");
  if (#{data.isPreviewScreen}){
    alert(#{data.isPreviewScreen});
     $("##{facesContext.externalContext.response.namespace}previewScreenHeaderAlert").dialog();
  }else{
     $("##{facesContext.externalContext.response.namespace}previewScreenHeaderArea").show();
   }
};
</script>

答案 1 :(得分:0)

不。这是不正确的...它破坏了内部的所有jQuery功能。我通过从bean中检索bean属性尝试了同样的方法并且它起作用了:

function #{facesContext.externalContext.response.namespace}verifyStatus(data){
  if ("#{contactBean.previewScreen}"==false){
  $("##{facesContext.externalContext.response.namespace}previewScreenHeaderAlert").dialog();
  }else{
$("##{facesContext.externalContext.response.namespace}previewScreenHeaderArea").show();
  }
};