struts2-Struts的注解方式无效

问题描述

Struts的注解方式无效

报错:
No result defined for action manage.action.MultiplyAction$$EnhancedByS2AOP$$1f8a98 and result mytest

MultiplyAction.java

@ParentPackage("manage")
@SuppressWarnings("serial")
@Results({
        @Result(name = "success", value = "WEB-INF/index.jsp"),
        @Result(name = "mytest", value = "WEB-INF/index.jsp") })

web.xml

<filter>
    <filter-name>struts2</filter-name>
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
      <param-name>actionPackages</param-name>
      <param-value>manage.action</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
可能是在哪里错了呢

解决方案

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);

}

时间: 2024-09-23 18:12:36

struts2-Struts的注解方式无效的相关文章

struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:) --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next) --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Fi

struts2,convention注解的应用

问题描述 现在项目需要,把struts的注解运用起来,调试老半天结果访问的时候提示no action mapping and action name login,,我只是用了最简单的loginAction extends actionSupport,如果谁用到过,麻烦写个最简单的例子,包含struts的配置文件,web.xml的配置文件,以及action的写法,望大家不吝赐教,感激不尽 解决方案 struts.xml convention相关配置<!-- convention-plugin 风格

android-添加一个文件类型的打开方式 无效

问题描述 添加一个文件类型的打开方式 无效 通过下列的方式添加一个文件类型的打开方式,没有生效 <intent-filter android:icon="@drawable/icon" android:label="my app" android:priority="1" > <action android:name="android.intent.action.VIEW" /> <categor

hibernate注解方式,一对多,让多的一方维护

问题描述 hibernate注解方式,一对多,让多的一方维护 有一个house房屋表,有一个图片表house picture一对多,我想让房屋表在增加的时候,图片表也自动增加,现在是图片表内的houseid进不去,房屋表@onetomany(.....mapped by=""house"")图片表@manytoone@joincolimn(name=""housed"")这时图片表中的外键houseid无法自动得到,. 还是不

读取hibernate实体类关联的表名以及列名(注解方式)

问题描述 因为工作需要出现了这样的一个需求,某记录需要拷贝一条,以某条记录或某些记录为基础,只需要更改主键值(id)例如这样的语句:insert into table1 (id,field1,field2)select @id,field1,field2 where id = 1;以上以id为1的记录拷贝.由于我现在的语句拷贝可能比较多,而且实体类涉及到clob字段,所以hibernate效率可能会比较低.所以想使用sql语句,但是如果是写明了所有字段的sql语句就会造成以后有人更改了表结构这块

spring3.0定时器 xml配置和注解方式

1.xml配置方式 web.xml <!-- 配置spring监听器和配置文件路径 -->     <context-param>         <param-name>contextConfigLocation</param-name>         <param-value>classpath:applicationContext.xml</param-value>     </context-param>    

app-APP 与html/jsp使用同样的spring注解方式得到json 有点类似webservice

问题描述 APP 与html/jsp使用同样的spring注解方式得到json 有点类似webservice 求助:我想做到APP与jsp访问同样的controller得到json,然后页面加载, 但是我有点糊涂在一些spring mvc 配置中使用ModelAndView("...jsp")的形式来跳转页面, 该怎么设计才好 解决方案 增加@ResponseBody 注解,返回json串

sping hibernate 事务-spring注解方式事务控制没有回滚

问题描述 spring注解方式事务控制没有回滚 项目中使用到了hibernate以及spring事务控制,在service层增加事务控制但是遇到异常没有回滚. 代码如下: 配置文件 <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfr

java-用@aspect注解方式无法实现切面功能

问题描述 用@aspect注解方式无法实现切面功能 用@aspect注解的方式实现切面,但是无发效果,代码如下,求大神解答 业务类 package com.aop_spring; public class Business implements IBusiness, IBusiness2 { @Override public boolean doSomeThing() { System.out.println("执行业务逻辑"); return true; } @Override pu