【发布时间】:2014-06-23 07:28:18
【问题描述】:
我对 struts 还很陌生,所以我需要为我缺乏理解而道歉。我正在尝试执行一个 struts 操作,该操作使用 jquery 对我的数据库进行更新,并且需要一些有关如何执行此操作的指导。我已经破解了它,但它不正确。
我的 jsp 中有一个 jquery 对话框(见下文)。您可以看到,单击此对话框中的按钮时,我调用了一个名为 myAjaxCall() 的函数...
<s:div id="dialog-form" title="Update" style="display:none">
<s:form id="dform" enctype="multipart/form-data" >
<s:textfield name="strid" id="strid" label="Store" readonly="true" />
<s:textfield name="strName" id="strName" label="Store Name" readonly="true" />
<s:textfield name="businessDt" id="businessDt" label="Business Date" readonly="true" />
<s:textfield name="openingtime" id="openingtime" label="Opening time(EST)" />
<s:textfield name="closingtime" id="closingtime" label="Closing time(EST)" />
<s:textfield name="reason" id="reason" label="Reason" />
<s:url id="ajaxDialog" value="/storeCurrentStatusDialog.action"/>
<table style="border:0" >
<tr>
<td align="center"><input type="button" value="Update" onclick="myAjaxCall()" ><br/></td>
</tr>
</table>
</s:form>
</s:div>
然后我有一个名为 myAjaxCall() 的 jquery 函数,它看起来像这样。我告诉它使用 json 运行 ajax 函数。
function myAjaxCall() {
var url="${pageContext.request.contextPath}/storeCurrentStatusDialog.action?strid="+document.dform.strid.value+"&closingtime="+document.dform.closingtime.value+"&openingtime="+document.dform.openingtime.value+"&businessDt="+document.dform.businessDt.value+"&reason="+document.dform.reason.value;
$.ajax({
type: 'GET',
url: url,
dataType: 'json',
success: function(data){
console.log(stringify(data));
}});
}
正确填充了 URL 变量,但没有调用我的 struts 操作。我的第一个问题是我发送的数据类型是 json。这会自动工作吗?我遇到的第二个问题是如何在 struts.xml 文件中定义我的 struts 操作以使其正常工作。像这样的东西?将返回成功。
<action name="storeCurrentStatusDialog"
class="com.mycompany.eposweb.action.StoreCurrentStatusAction"
method="update">
<result name="success" type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
谢谢
【问题讨论】:
-
你如何检查一个动作没有被调用?还有你的行动课是什么?