我试图通过我的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>
答案 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();
}
};