问题背景:
在一个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>
分享到:
相关推荐
### Struts2框架中“No result defined for action and result input”错误解析及解决方法 #### 错误概述 在Struts2框架中开发Web应用程序时,可能会遇到一个名为“No result defined for action and result input...
在IT领域,尤其是在Web开发中,遇到“No result defined for action”这类错误是常见的问题,尤其当使用Struts2框架时更为突出。此类错误通常指向在控制器(Action)中未正确配置或实现结果集(Result),导致请求...
No result defined for action ***Action and result success **问题描述**: 当执行某个Action后,出现“没有定义success结果”的错误。 **解决方法**: 这意味着在`struts.xml`中未正确配置`success`结果。为了...
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-...
No result defined for action cn.itcast.user.web.action.UserAction and result error ``` 此异常表明在`struts.xml`中没有为指定的动作定义结果。例如,如果期望动作在发生错误时转向特定的JSP页面,但配置文件...
错误信息:“No result defined for action com.upload.UploadAction and result input”。 这个错误通常是由于配置文件中没有正确定义动作的结果导致的。确保在`struts.xml`中为每个动作定义了合适的`result`标签...
在提供的内容中提到了一个错误 `No result defined for action com.sxit.smxt.action.XXXAction and result input`。这意味着Struts2框架无法找到对应Action的`input`结果定义。 #### 解决方案: - **检查配置文件*...
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" 解决办法 在Linux环境下进行文件操作时,可能会遇到一个名为“Value too large for defined data type”的错误。这一问题通常发生在使用`ls`或`find`命令来查看大于2...
Minicom是一款经典的串口通信工具...了解如何解决"No termcap entry for vt102"的问题,以及如何根据个人需求定制minicom的退出命令,可以提高工作效率。同时,熟悉ncurses的移植步骤对在各种环境部署minicom至关重要。
Zabbix 新版微信告警配置攻略,肯定是你需要的,有故障即时通知
- 首先检查 `struts-config.xml` 文件中的 `<action>` 标签内的 `type` 属性是否正确指定了对应的 `ActionForm` 类。 - 确认 `<action>` 标签中的 `name` 属性是否与 `ActionForm` 的实例名一致。 - 检查相关的 `...
如果你是R语言的用户,并且希望在Pycharm中编写和运行R脚本,那么你需要按照以下步骤来解决“No R interpreter defined”的问题: 1. 安装R语言环境:首先,确保你的计算机上安装了R语言。可以通过访问R语言官方...
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 ...
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的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...