基本的に、私はレコードのリストを持っています。各レコード (VO Bean) には、アラート フラグ がalertFlag
関連付けられます。alertFlag が true の場合、アラート ボックスが表示されます。そうしないと、プロンプトが表示されません。
VO Bean:
@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>
ここにtheEnquiry
豆があります:
@ManagedBean(name = "theEnquiry")
@SessionScoped
public class Enquiry {
private boolean alertFlag = false;
/** getter and setter of alertFlag **/
public void doSetAlertFlag(Integer theParamKey) {
// check whether the alert flag is true or false.
// if alert flag is true, otherwise set it false
}
}
JavaScript コードは次のとおりです。
function readAlertFlag(alertFlag) {
if( alertFlag == "true" )
alert('alertFlag is true');
else
alert('alertFlag is false');
}
私の現在の状況は、JavaScript アラート ボックスが常に最初 doSetAlertFlag()
に実行され、その後実行されるだけです。しかし、doSetAlertFlag()
プロンプトを表示する前にチェックを最初に実行したいので、最初に実行することを期待しています。これが JavaScript プロンプトで実行できない場合は、別の解決策を検討します。