这是我遇到的一个非常奇怪的错误,但我已经为此苦苦挣扎了一周。我有一个在 Jboss4 上运行良好的 Web 应用程序,但是当我将它移到 Jboss6 时,一切都崩溃了。查看以下代码
列表.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, command=, payDate=null
2013-05-07 15:31:17:462 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually 调用 paymentIDnull, command=, payDate=null
2013-05-07 15:31:20:103 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually 调用 paymentID2846,command=view,payDate=null
2013-05-07 15:31:20:103 [http-0.0.0.0-8080-1] INFO actions.payments.PaymentActions - payManually - payManually 调用 paymentID2846,command=view,payDate=null
我究竟做错了什么?
请帮助我,因为我真的被卡住了,谷歌并没有太多帮助
如果您需要更多信息,请告诉我。