No result defined for action的一个原因

No result defined for action com.tazi.action.SomeAction and result input - action - file:/D:/MyEclipse_Workspaces/XXX/WebRoot/WEB-INF/classes/struts-omc.xml:383:69

我碰到的这个问题的原因是:

Action的参数填充时出了问题。

比如我有一个参数是Integer类型的(名称为state),但客户端传过来的是一个不能转换为Integer的字符串,比如"hello"。

我当时前台使用了Ext Js的FormPanel(对象名为myForm),其中有一个name为state的ComboBox(值为1,2,3,对应的显示值为"success","fail","unknown").但由于某些特殊的需要,我不得不使用FormPanel的原始表单提交方式,即使用这个myForm.form.submit()方法:

myForm.form.el.dom.action='SomeAction!exportReport.action';
myForm.form.el.dom.target="exportFrame";   //这里target可以是"_blank"等也可以是某一个iframe的名称,因为我这边是要导出Excel,所以在页面里嵌入了iframe.
myForm.form.submit();

提交表单时,传到Action里的state的值其实是"success","fail","unknown"中的一个,因为原始的表单提交方式是不会对ComboBox进行值转换的。所以就报错了。

解决办法是:

去掉state对应的ComboBox的name属性。同时在FormPanel中增加一个{xtype:'hidden',name:'state'}这样的表单域,并

form.form.findField('state').setValue(stateComboBox.getValue());

就ok了。

原文地址:https://www.cnblogs.com/tazi/p/2955111.html