如何执行commandLink';actionListener函数,然后只执行JavaScript提示符?
基本上我有一个记录列表。每个记录(VObean)都会附加一个警报标志,如何执行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=
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>