随机出现“No result defined for action ....Action and result input”解决

最近一次系统升级,随机出现编辑原来数据库数据失败问题,而如果修改这个action所有数据则可以成功,新添加再修改也可以成功。跟踪发现系统报错:

 

No result defined for action com.jim.web.action.appointment.AppointmentAction and result input

    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:376)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

 

再到代码中跟踪发现:

 

WARN OgnlValueStack:60 - Error setting expression 'appointment.customerId' with value '[Ljava.lang.String;@15475116'
ognl.MethodFailedException: Method "setCustomerId" failed for object com.jim.bean.appointment.Appointment@18f75278 [java.lang.NoSuchMethodException: com.jim.bean.appointment.Appointment.setCustomerId([Ljava.lang.String;)]
.............................................................................................................
Caused by: java.lang.NoSuchMethodException: com.jim.bean.appointment.Appointment.setCustomerId([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1233)
	... 67 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: com.jim.bean.appointment.Appointment.setCustomerId([Ljava.lang.String;)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1233)
............................................................................................................
\--------------------------------------/
09:25:59,222 ERROR Dispatcher:38 - Could not find action or result
/blackfoot/pages/booking/editAppointmentByJsonAction
No result defined for action com.jim.web.action.appointment.AppointmentAction and result input

 发现是bean映射时变量类型错误导致请注意一下信息

“Error setting expression 'appointment.customerId' with value '[Ljava.lang.String

在bean appointment中“customerId”是Integer类型,但jsp和js却直接映射成String,导致异常发什么。

在js中原来为

 

"appointment.customerId" :$("#customerId").val(),

 jquery 从input获得的是一个String类型值,改正为获得值后直接强制转化为10进制 Integer类型

 

"appointment.customerId" :parseInt($("#customerId").val(),10),

 后面“10”表示10进制,如果为“8”则为8进制,以此类推

 

问题解决。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值