ajax请求未进入Struts2跳转到Action,一直返回error

1 篇文章 0 订阅
1 篇文章 0 订阅

使用SSH或Struts2框架时,通过ajax向后台发送请求,但请求无法跳转(在action方法的与第一行输出,但控制台不显示),这时候需要看是否是ajax传入的参数类型后台无法解析。

首先,更改struts.xml文件,详细打印错误信息:

	<!-- 开发模式下使用,可以打印出更详细的错误信息 -->
	<constant name="struts.devMode" value="true"></constant>

若后台输出于下图类似,则说明ajax的data参数类型与后台实体类型不符:

ERROR ParametersInterceptor Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'birthday' on 'class xxx.Action.xxxAction: Error setting expression 'birthday' with value ['Wed Nov 11 1992 08:00:00 GMT+0800 (中国标准时间)', ]
ERROR Dispatcher Could not find action or result: /xxx/project_loan
 No result defined for action xxx.Action.xxxAction and result input - action - file:/E:/WorkSpace/JavaEE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/xxx/WEB-INF/classes/struts.xml:27:63
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:377)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:279)

此处前端传入的birthday为Date类型 'Wed Nov 11 1992 08:00:00 GMT+0800 (中国标准时间)',后台java.util.Date不能正确地解析,所以在传值之前将其格式化即可。

	var birthday = new Date($("#birthday").val());
	var y = birthday.getFullYear();
    var m = birthday.getMonth()+1;
    var d = birthday.getDate();
    birthday = y + "-" + (m>=10?m:('0'+m)) + "-" + (d>=10?d:('0'+d));

其他数据类型也类似格式化即可。
(一般Date类型存在问题可能性较大,关键是要详细打印开发模式错误信息,根据实际情况解决问题。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值