Exception Name: No result defined for action

在开发中总遇到这个问题,No result defined for action:
原因:Action中的属性值为空的时候,Struts2的默认拦截器会报错,但是又找不到input的Result,不能够把错误返回,所以报这种错误。

解决方法:
1.在页面中给空值赋默认值。
2.重新定义一个Action,去掉空值的成员变量。
3.添加input的Result,并在这个页面给出提示
--------------------------------------------------------------------------
  当你在用struts2开发时,如果,从页面跳入action时,页面报No result defined for action and result时,大部分的原因有以下几种:

1、validate方法没有通过;

2、页面元素中有重命名时,但后台action类的对应的接收此同名参数的是变量而没有写成数组


 
要检查这种错误时,可以
1,在后台action类中重写ActionSupport中的
void addActionError(String anErrorMessage)
void addActionMessage(String aMessage)
void addFieldError(String fieldName, String errorMessage)
这三个方法,在并在其实现代码中设置断点,监控传入的参数,并可获知页面的相关报错具体原因.
2,在页面中加入以下标签,将错误显示出来 :

< div style =”color:red” >
    < s:fielderror />
</ div >

--------------------------------------------------------------------------

  public void addActionError(String anErrorMessage){
   String s=anErrorMessage;
   System.out.println(s);
  }
  public void addActionMessage(String aMessage){
   String s=aMessage;
   System.out.println(s);
  
  }
  public void addFieldError(String fieldName, String errorMessage){
   String s=errorMessage;
   String f=fieldName;
   System.out.println(s);
   System.out.println(f);
  
  }

转载于:https://my.oschina.net/u/615517/blog/683780

### JSP页面中阶乘程序运行异常的原因分析 当JSP页面中的阶乘程序未能正常运行或抛出异常时,可能涉及多个方面的问题。以下是可能导致此类问题的主要原因及其解决方案: #### 1. **逻辑错误** 如果阶乘计算的算法存在缺陷,则可能会导致程序无法正确执行。例如,在实现阶乘功能时,如果没有处理负数输入或者超出整型范围的情况,就可能出现`ArithmeticException`或其他类型的异常。 ```java <% int factorial(int n) { if (n < 0) { // 负数情况应提前判断并返回提示信息 throw new IllegalArgumentException("Factorial is not defined for negative numbers."); } int result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; } try { int number = Integer.parseInt(request.getParameter("number")); // 获取参数 out.println("Factorial of " + number + " is: " + factorial(number)); } catch (NumberFormatException e) { out.println("Invalid input! Please enter a valid integer."); // 输入验证失败处理 } catch (IllegalArgumentException e) { out.println(e.getMessage()); // 处理非法参数 } %> ``` 上述代码片段展示了如何通过捕获特定异常来增强健壮性[^1]。 --- #### 2. **缺少必要的配置** 如果在Struts框架下开发JSP应用,并且未正确定义Action映射关系,那么请求到达服务器端后会因为找不到对应的处理器而报错。这种情况下通常会在日志中看到类似于“action has no mapping”的消息[^2]。 解决方法之一就是检查`struts-config.xml`文件是否包含了所有必需的动作条目以及它们指向的具体类名是否拼写无误。 --- #### 3. **自定义错误页设置不当** 即使业务逻辑完全正确,但如果项目设置了全局性的错误跳转机制却忽略了某些特殊情况下的响应方式,也可能让用户感觉像是出现了功能性障碍。比如访问某个不存在资源的时候,默认行为应该是展示定制好的404 Not Found界面而非空白屏幕或者是堆栈跟踪列表[^3]。 确保所有的潜在失误都能导向恰当的通知形式是非常重要的用户体验优化措施。 --- #### 4. **Include Directive 使用不妥** 假如在一个复杂的多模块组成的网页里运用到了动态包含技术(`<%@ include file="..." %>`) ,但被嵌入的部分违反了一些基本规则——像保留了多余的HTML结构标签(<html>, <head>) 或者路径声明有歧义(绝对 vs 相对),这都会干扰最终渲染效果甚至引发解析阶段崩溃[^4]。 因此务必遵循最佳实践指南来进行组件组装操作。 --- #### 5. **数据交互环节漏洞** 考虑这样一个场景:前端表单提交的数据未经充分校验就被直接送往后端加以运算。一旦用户故意篡改字段值(如注入恶意SQL语句或者其他破坏性命令序列),不仅影响到目标函数本身的稳定性,还极有可能危及整个系统的安全性[^5]。 为此推荐采用预编译查询等方式防范SQL Injection攻击的同时也要做好边界条件过滤工作。 --- ### 结论 综上所述,针对JSP页面上的阶乘程序出现问题的现象可以从以上几个角度切入排查具体根源所在。每一步都需要细致考量才能有效定位故障源头进而采取针对性修复策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值