`

Struts2中No result defined for action XXXAction and result input问题的解决

阅读更多
问题背景:
在一个JSP页面中需要动态跳转到另外一个Action(不是当前页Form的Action),需要向这个Action传递一个当前Form中没有的属性值,因此在jsp而面中追加了类似如下的属性:

<input type="hidden" id="driverid" name="driverid" value="" />
<input type="hidden" id="drivername" name="drivername" value="" />


结果目标Action怎么都无法进入,根本就运行不到Action中去,页面抛出以下异常信息:

Struts Problem Report

Struts has detected an unhandled exception:
Messages:


No result defined for action com.kotei.smbcloud.web.action.statisticevaluate.StatisticEvaluateAction and result input
File: file:/E:/workspace_odc5/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/SMBCloud/WEB-INF/classes/struts.xml
Line number: 194
Column number: 84
         <!-- Station Manage end-->
          <!-- ????? -->
<action name="statistic_evaluate_*" class="statisticEvaluateAction" method="{1}">
<result name="toInitPage">/jsp/statisticEvaluate/evaluateMgr.jsp</result>
<result name="showEvaluate">/jsp/statisticEvaluate/showStatisticEvaluate.jsp</result>
Stacktraces

No result defined for action com.kotei.smbcloud.web.action.statisticevaluate.StatisticEvaluateAction and result input - action - file:/E:/workspace_odc5/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/SMBCloud/WEB-INF/classes/struts.xml:194:84
    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:273)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:244)



原因:
纠结来纠结去,还查了半天,最终自己摸清楚原因了。原来是自己在jsp页面中追加了相关的隐藏属性,但当前页Form中对应的Action中没有定义这个属性,因此Struts2在封装页面参数到当前Action时找不到对应的属性而发生错误。

解决办法:
有两种办法,选其一:
1、在当前页Form对应的Action中也追加相应属性。
2、不使用隐藏Input字段,而使用javaScript动态为Form增加属性,提交表单。

例如:
在jsp中使用相应的link配合js提交表单:
<a class="linkToShowUserStar" href="#" attrdriverid="${item.driverinfo.id }" attrdrivername='${item.driverinfo.username }' attrintStar="5" attryear="${item.year}" attrmonth="${item.month}">${item.evaluate5 }</a>


js动态追加表单属性提交表单(JQuery):
<script type="text/javascript">
$(function(){
	$('.linkToShowUserStar').click(function(){
		action = "showEvaluateDetail_showUserDetail.action";			
		//alert($(this).attr("attrdriverid"));
		//alert($(this).attr("attrdrivername"));
		//alert($(this).attr("attrintStar"));
		//alert("strOldCon:" + $('#strMonth').val() +  "_" + $('#selectError').val());
		
		form = $("<form></form>");
		form.attr('action', action);
		form.attr('method', 'post');
		input1 = $("<input type='hidden' name='driverid' />");
		input1.attr('value', $(this).attr("attrdriverid"));
		form.append(input1);
		
		input2 = $("<input type='hidden' name='drivername' />");
		input2.attr('value', $(this).attr("attrdrivername"));
		form.append(input2);
		
		input3 = $("<input type='hidden' name='intStar' />");
		input3.attr('value', $(this).attr("attrintStar"));
		form.append(input3);
		
		input4 = $("<input type='hidden' name='strOldCon' />");
		input4.attr('value', $('#strMonth').val() +  "_" + $('#selectError').val());
		form.append(input4);
		
		input5 = $("<input type='hidden' name='strMonth' />");
		input5.attr('value', $(this).attr("attryear") + "-" + $(this).attr("attrmonth"));
		form.append(input5);
		
		form.appendTo("body");
		form.css('display', 'none');
		form.submit();
		return false;		
	});
});

</script>

分享到:
评论

相关推荐

    jsp\No result defined for action and result input.doc

    ### Struts2框架中“No result defined for action and result input”错误解析及解决方法 #### 错误概述 在Struts2框架中开发Web应用程序时,可能会遇到一个名为“No result defined for action and result input...

    No result defined for action.doc

    在IT领域,尤其是在Web开发中,遇到“No result defined for action”这类错误是常见的问题,尤其当使用Struts2框架时更为突出。此类错误通常指向在控制器(Action)中未正确配置或实现结果集(Result),导致请求...

    一个struts2的例子:彻底解决STRUTS2 错误There is no Action mapped for namespace / and action name login

    前几天在网上下载一个struts2的helloword的例子,那个作者也真够缺德的,搞个错误...看网上都催struts2比struts1 整的整的好,我看就这个问题,完全可以算struts2是个垃圾 我现在把完整的程序提供给大家,希望大家看看

    配置struts2常见错误

    No result defined for action ***Action and result success **问题描述**: 当执行某个Action后,出现“没有定义success结果”的错误。 **解决方法**: 这意味着在`struts.xml`中未正确配置`success`结果。为了...

    RF and Digital Signal Processing for Software-Defined Radio

    RF and Digital Signal Processing for Software-Defined Radio: A Multi-Standard Multi-Mode Approach by Tony J. Rouphael RF and Digital Signal Processing for Software-Defined Radio: A Multi-...

    struts2 的异常收集

    No result defined for action cn.itcast.user.web.action.UserAction and result error ``` 此异常表明在`struts.xml`中没有为指定的动作定义结果。例如,如果期望动作在发生错误时转向特定的JSP页面,但配置文件...

    struts2错误集合.txt

    错误信息:“No result defined for action com.upload.UploadAction and result input”。 这个错误通常是由于配置文件中没有正确定义动作的结果导致的。确保在`struts.xml`中为每个动作定义了合适的`result`标签...

    我的JAVA开发工作笔记

    在提供的内容中提到了一个错误 `No result defined for action com.sxit.smxt.action.XXXAction and result input`。这意味着Struts2框架无法找到对应Action的`input`结果定义。 #### 解决方案: - **检查配置文件*...

    RF and Digital Signal Processing for Software Defined Radio

    to present signal processing principles used in the software defined radio, ranging from analog ,digital modulation to RF, DSP and data conversion.

    Value too large for defined data type 解决办法

    ### "Value too large for defined data type" 解决办法 在Linux环境下进行文件操作时,可能会遇到一个名为“Value too large for defined data type”的错误。这一问题通常发生在使用`ls`或`find`命令来查看大于2...

    minicom移植并修改No termcap entry for vt102和无法退出问题

    Minicom是一款经典的串口通信工具...了解如何解决"No termcap entry for vt102"的问题,以及如何根据个人需求定制minicom的退出命令,可以提高工作效率。同时,熟悉ncurses的移植步骤对在各种环境部署minicom至关重要。

    Zabbix 新版微信告警配置攻略

    Zabbix 新版微信告警配置攻略,肯定是你需要的,有故障即时通知

    Struts常见错误汇总

    - 首先检查 `struts-config.xml` 文件中的 `&lt;action&gt;` 标签内的 `type` 属性是否正确指定了对应的 `ActionForm` 类。 - 确认 `&lt;action&gt;` 标签中的 `name` 属性是否与 `ActionForm` 的实例名一致。 - 检查相关的 `...

    解决Pycharm下面出现No R interpreter defined的问题

    如果你是R语言的用户,并且希望在Pycharm中编写和运行R脚本,那么你需要按照以下步骤来解决“No R interpreter defined”的问题: 1. 安装R语言环境:首先,确保你的计算机上安装了R语言。可以通过访问R语言官方...

    struts1.3.9.zip

    struts1.3.9 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the ...

    Struts2上传所需jar包

    and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal ...

    Struts2+Spring3+MyBatis3完整实例

    网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...

Global site tag (gtag.js) - Google Analytics