これは私が持っている非常に奇妙なエラーですが、私はこれに1週間苦労しています. Jboss4 で問題なく動作する Web アプリケーションを持っていますが、それを Jboss6 に移動すると、すべてが壊れてしまいました。次のコードを確認してください
list.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
<s:if test="payments != null">
<div id="payManuallyDialog" class="defaultDialog" style="height: 150px; width: 300px;">
<s:form onsubmit="return false;" action="PayManually" namespace="/authorized/payments" name="PayManuallyForm" id="PayManuallyForm" cssStyle="height: 100%;">
<s:url id="payManuallyURL" action="PayManually" namespace="/authorized/payments" />
<sx:div id="PayManuallyPanel" cssStyle="height: 100%;" formId="PayManuallyForm" formFilter="filterFields" href="%{payManuallyURL}" theme="ajax" listenTopics="view_pay" showLoadingText="false">
</sx:div>
<s:hidden key="paymentID" value="" />
<s:hidden key="command" value="" />
</s:form>
</div>
</s:if>
上部にJavaScript関数を使用
function filterFields(field) {
return field.name == "paymentID" || field.name == "command" || field.name == "payDate";
}
function pay(id) {
document.PayManuallyForm.paymentID.value = id;
document.PayManuallyForm.command.value = "view";
dojo.event.topic.publish("view_pay");
openModalDialog("payManuallyDialog");
document.PayManuallyForm.command.focus();
}
function cancel() {
document.PayManuallyForm.paymentID.value = "";
document.PayManuallyForm.command.value = "";
closeModalDialog("payManuallyDialog");
}
function save(id) {
document.PayManuallyForm.paymentID.value = id;
document.PayManuallyForm.command.value = "save";
dojo.event.topic.publish("view_pay");
closeModalDialog("payManuallyDialog");
}
payManually.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<div class="dialogWrapper">
<div class="dialogTitle">
<s:text name="label.header" />: <s:text name="pay.paymentID" /> <s:property value="ID" />
</div>
<div class="dialogContent">
<s:date name="payDate" id="payDateId" format="yyyy-MM-dd"/>
<s:text name="payman.date" /> <s:textfield name="payDate" value="%{payDateId}" />
</div>
</div>
<div class="dialogFooter">
<a class="tableLink" href="javascript: save(<s:property value='ID'/>);"><img border="0" src="/gfx/active.gif" /> <s:text name="label.save" /></a>
<a class="tableLink" href="javascript: cancel();"><img border="0" src="/gfx/inactive.gif" /> <s:text name="label.cancel" /></a>
</div>
私のstruts.xml
<action name="PayManually" class="paymentActions" method="payManually">
<result name="input">/WEB-INF/authorized/payments/payManually.jsp</result>
<result name="success">/WEB-INF/authorized/payments/payManually.jsp</result>
<result name="error" type="tiles">**error-page**</result>
</action>
そして私のアクションクラス
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public String payManually() {
System.out.println("Command == "+command);
try {
if (logger.isInfoEnabled()) {
logger.info("payManually called with paymentID" + paymentID + ", command=" + command + ", payDate=" + payDate);
}
if (paymentID != null && command != null) {
if (command.equals("view")) {
**** Do some things ****
} else if (command.equals("save") && payDate != null) {
**** Do some things ****
} catch (ServerException serverException) {
serverException.printStackTrace();
addActionError(serverException.getMessage());
}
return (!hasActionErrors()) ? SUCCESS : ERROR;
}
私はすべてのゲッターとセッターを持っています。
ご覧のとおり、javascript コードでコマンド変数を設定しています。これは pay(id) 関数で機能し、コマンドが設定され、id が設定されます。payManually.jsp ページで保存ボタンを押すと、javascript 関数 save(id) が呼び出され、すべての変数が設定されますが、actionclass メソッドは呼び出されません!
私のログには次の行が表示されます
2013-05-07 15:31:17:462 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually は paymentIDnull、コマンド =、payDate = null で呼び出されます
2013-05-07 15:31:17:462 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually は paymentIDnull、コマンド =、payDate = null で呼び出されます
2013-05-07 15:31:20:103 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually は paymentID2846 で呼び出され、コマンド = ビュー、payDate = null
2013-05-07 15:31:20:103 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually は paymentID2846 で呼び出され、コマンド = ビュー、payDate = null
私は何を間違っていますか?
私は本当に立ち往生していて、Googleはあまり助けになっていないので、私を助けてください
さらに情報が必要な場合はお知らせください。