Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何执行commandLink';actionListener函数,然后只执行JavaScript提示符?_Javascript_Jsf 2_Facelets_Managed Bean - Fatal编程技术网

如何执行commandLink';actionListener函数,然后只执行JavaScript提示符?

如何执行commandLink';actionListener函数,然后只执行JavaScript提示符?,javascript,jsf-2,facelets,managed-bean,Javascript,Jsf 2,Facelets,Managed Bean,基本上我有一个记录列表。每个记录(VObean)都会附加一个警报标志,alertFlag。当alertFlag为true时,将提示alertbox。否则它不会提示 vobean: @ManagedBean(name = "theVo") @SessionScoped public class TheVO { private boolean alertFlag; /** getter and setter **/ } 以下是XHTML代码: <t:dataTable var=

基本上我有一个记录列表。每个记录(VObean)都会附加一个警报标志,
alertFlag
。当alertFlag为true时,将提示alertbox。否则它不会提示

vobean:

@ManagedBean(name = "theVo")
@SessionScoped
public class TheVO {
   private boolean alertFlag;

   /** getter and setter **/
}
以下是XHTML代码:

<t:dataTable var="theRecord" value="#{theVo.theList}">

  <t:column>
    <h:commandLink value="#{theRecord.recNo}" 
      actionListener="#{theEnquiry.doSetAlertFlag(theRecord.paramKey)}" 
      immediate="true" 
      action="#{theDetail.doShowDetailsPage(theRecord)}" 
      onclick="readAlertFlag(#{theEnquiry.alertFlag})"/>
    </h:commandLink>
  </t:column>

  ...
  ...
</t:dataTable>
以下是JavaScript代码:

function readAlertFlag(alertFlag) {

  if( alertFlag == "true" )
    alert('alertFlag is true');
  else
    alert('alertFlag is false');
}

我目前的情况是JavaScript警报框总是先执行,然后才执行。但我的期望是首先执行
doSetAlertFlag()
,因为我希望在提示之前先完成检查。如果无法在JavaScript提示符下执行此操作,我愿意选择其他解决方案。

让JSF有条件地呈现脚本。用
替换
onclick


showarert()
function readAlertFlag(alertFlag) {

  if( alertFlag == "true" )
    alert('alertFlag is true');
  else
    alert('alertFlag is false');
}
<h:commandLink ... />
<h:outputScript rendered="#{theEnquiry.alertFlag}">showAlert()</h:outputScript>