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了。