struts2环境配置是出现No result defined for action *** and result input”的错误信息

来源:互联网 发布:java web压力测试工具 编辑:程序博客网 时间:2024/06/06 08:46

这几天,看了很多配置struts2的配置环境教程,总的来说其实都是差不多的。

步骤大概如下:

①创建一个web项目


②搭建struts2运行环境(即导入struts2的jar包)


③在web.xml文件中设置核心控制器

(即配置struts2的过滤器,注意:旧版本的教程中的<filter-class>是引用了org.apache.struts2.dispatcher.FilterDispatcher这个类,但是我们现在用的因为是新版本的包,所以要把这个引用类改为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)


④创建一个继承ActionSupport的动作类(这个类需要注意的是动作被访问后默认执行execute()方法:public String execute() throws Exception{...} 该方法的返回值通常使用INPUT 、SUCCESS、LOGIN、NONE和ERROR)


⑤创建结果显示JSP文件,保存目录为WebRoot(即网页页面)


创建struts.xml,在其中定义动作包、动作等内容,保存目录为src。


⑦部署并运行,finish。


一般情况下,网上的教程都是大概这样的步骤。但是,最近我发现了一个问题:

在第6步配置文件时,这个配置文件有个细小的问题,就是关于result的name值问题,如果我们的name的值是写成动作类的返回值的话,等你一运行后,系统就会报错,并提示“No result defined for action com.struts.LoginAction and result input”的错误信息;

于是,我查了API,发现这个,终于可以解释为什么会出现错误了。就是因为  动作处理客户端请求后会返回一个字符串(即INPUT等大写字母的字符串),每个字符串对应一个逻辑视图(小写字母的) ,而result的name值只能填写字符串对应的逻辑视图名称,所以千万不要把动作类的返回值和result的name值当成一样。


0 0