2

これは私が持っている非常に奇妙なエラーですが、私はこれに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" />:&nbsp;<s:text name="pay.paymentID" />&nbsp;<s:property value="ID" />
   </div>
   <div class="dialogContent">
      <s:date name="payDate" id="payDateId" format="yyyy-MM-dd"/>
      <s:text name="payman.date" />&nbsp;<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" />&nbsp;<s:text name="label.save" /></a>
   &nbsp;<a class="tableLink" href="javascript: cancel();"><img border="0" src="/gfx/inactive.gif" />&nbsp;<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はあまり助けになっていないので、私を助けてください

さらに情報が必要な場合はお知らせください。

4

0 に答える 0