java側の定数を使う
// 定義方法 <%@ page import="org.apache.struts2.ServletActionContext"%> <%@ page import="com.opensymphony.xwork2.util.ValueStack"%> <%@ page import="呼び出すクラス(例.jp.co.~.Define)"%> <% ValueStack stack = ServletActionContext.getValueStack(request); stack.set("使う名前", "定数名"); stack.set("states", "Define.STATES_CD"); %> // 使い方 <s:if test="~~ == states">
確認ボックス表示からのaction(struts2)を動かす
ボタンは2つあって処理をわける場合
<ボタン側>
<s: if test="~ == 1"> <input type="button" value="ボタン名1" id="ボタンのID" onclick="confirmChangeState();"> </s:if> <s: if test="~ == 2"> <input type="button" value="ボタン名2" id="ボタンのID" onclick="confirmChangeState();"> </s:if>
<ボタン押下処理>
<script language="JavaScript" type="text/javascript"> <!-- <%-- 2度押し防止用 --%> var doneSubmit = false; function confirmChangeRefundState() { var changeStateFlg = false; var updateState = "0"; <%-- 2度押し防止 --%> if (doneSubmit) { return; } <%-- 確認メッセージ表示(条件が1のとき) --%> <s:if test="~~~ == 1"> changeStateFlg = confirm("確認メッセージ1"); updateState = "0"; </s:if> <%-- 確認メッセージ表示(条件が2のとき) --%> <s:elseif test="~~~ == 2"> changeStateFlg = confirm("確認メッセージ2"); updateState = "1"; </s:elseif> doneSubmit = true; if (changeStateFlg) { <%-- 連続更新を防ぐため、ボタンを非表示にする--%> document.getElementById('ボタンのID').disabled = true; document.forms[1].action = "実行するアクション名(例.registPayment_updateState__)" + updateState + ".action"; document.forms[1].submit(); } else { <%-- キャンセルしたので、ボタン押下可能 --%> doneSubmit = false; } } // --> </script>
<action name="registPayment_*__*" class="jp.~.offerDetailAction" method="{1}"> <param name="processMode">{2}</param> <result name="~">/~.jsp</result> </action>
actionクラス
private String processMode; public String getProcessMode() { return processMode; } public void setProcessMode(String processMode) { this.processMode = processMode; } public String updateState() { // 渡した値を取得 String state = getProcessMode(); // 渡した値に応じて処理を行う if (state.equals(1)) { } }