【问题标题】:Unable to retrieve managed bean property through javascript call无法通过 javascript 调用检索托管 bean 属性
【发布时间】:2013-05-03 21:39:23
【问题描述】:

我正在尝试通过我的 JSF facelet Javascript 调用从托管 bean 中检索属性值,如下所示,但我没有从托管 bean 中获取值。

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

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

<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>

【问题讨论】:

    标签: javascript jsf


    【解决方案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>
    

    【讨论】:

    • nopes.. 这是不正确的......它撕掉了里面的所有 jquery fucntionalities.. 我已经通过从 bean 中检索 bean 属性来尝试相同的方法并且它起作用了:
    【解决方案2】:

    不。那是不正确的......它撕掉了里面的所有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();
      }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 2012-07-31
      • 2014-12-11
      • 2019-05-28
      相关资源
      最近更新 更多