[解决]Java之Struts2的Action类 No result defined for action actions.***Action and result success

在学习javaStruts2框架,使用Action类进测试时,出现

No result defined for action actions.***Action and result success

下面是我Struts2工程下的测试代码:
srcactions包ParamAction.java

package actions;

public class ParamAction {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String execute() {
        System.out.println("你的名字是:" + name);
        return "success" ;
    }
}

下面是struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="struts" extends="struts-default" > 
        <action name="param" class="actions.ParamAction">
            <result name="success">/success.jsp</result>
        </action>
    </package>
</struts>

success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>显示name属性</title>
</head>
<body>
    <h1>
        name属性值:
        <s:property value="name" />
    </h1>
</body>
</html>

启动tomcat后,
当我在浏览器中输入:http://localhost:8080/param.action?name=xxx
应该会跳转到success.jsp中的页面。
一般是不会出问题的,但是会出现下列错误:
在这里插入图片描述
多方查找资料发现原因:

Struts2-Convention-Plugin.jar包引起。
这个包是实现Struts零配置功能的。他会扫描你的所有actionactionsstrutsstruts包下含有execute方法的类。并根据其类名建立mmm.action映射。这时候当你访问mmm.action时系统会首先调用零配置方法配置的action,而这时候你又没有使用注解配置其result。当然就报找不到no result啦。

**解决办法:**假如你的类名为MMMAction,在配置XML的时候action name,就不要设置为MMM,改为MMM_test,或者其他的例如:
在这里插入图片描述

这样Struts2-Convention-Plugin.jar就不会对它产生影响了。
修改之后效果:
在这里插入图片描述
完美解决!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值