Struts2:No result defined for action XXX and result input


<div class="row-fluid filearea_div">
					<div class="span9">
						<input type="text" name="appImg2" id="appImg2_2"  />
					</div>
					<div class="span2">
						 <input type="button" value="<fmt:message
						key='appManage.appLibraryForm.btn.open' />"/>
					</div>
					<s:file name="appImg2" id="file_appImg2_2" cssClass="filearea_file"
							οnchange="return setFileName('file_appImg2_2','appImg2_2')" />
				</div>

一般遇到这种错误,是因为表单字段与后台action类中字段类型不一致、名称不一致、值为空等会导致这种错误
字段类型不一致、名称不一致要好好查查表单字段是不是字段名否不一致或重复了?


像上面,我的后台action中是:

private List<File>  appImg=new ArrayList<File>(); //get set方法省略

粗心大意在复制粘贴的时候忘记了应该是<s:file name="appImg" />,导致了字段名不一致。


同样的,在使用<s:file>标签时,因为我的应用添加、应用编辑表单是使用的同一个表单,在编辑的时候,我并没有打算更换应用截图appImg,所以自然也就没有选择图片文件,然后提交了action,因为<s:file>标签中并没有文件,action中的appImg 这个List的值自然就是null了。这时候后台会报:No result defined for action save and result input。

而你在save方法中打了一个断点,然后喜闻乐见的发现,程序根本就没办法走到断点那里……

因为在属性get set的时候,后台已经挂了。这时候应该在get set方法里打断点,但是那么多get set 方法 难道一个个去设断点?

总的来说,当你确认你的字段名一致、字段属性一致且你知道你的某些字段在如编辑场合的时候可能为空时,你可以尝试使用:

<result name="input" type="redirectAction">application</result>
input这个方法可以屏蔽No result defined for action save and result 这个错误,像我一样在使用<s:file>标签时肯定不希望编辑的时候还要把每个文件都再上传一遍,也懒得将添加编辑分开来……加了这个之后,只需要在如save方法中判断下appImg是不是为空。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值