在项目中部署struts2项目,web.xml中配置好了核心控制器(绝对没配置错),struts中也配好了相应的action和result,但在运行时提交请求总会报错,提示没有为action定义result,很不理解。因为之前做过一个struts2的项目了,各方面都运行正常。只是版本为struts2.0.14,MyEclipse8.5中struts版本好像是struts2.1吧,不过这个应该没问题吧

解决方案 »

  1.   

    贴错误和相关代码。应该是命名空间(namespace)的问题。
      

  2.   

    web.xml:
      <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <filter>
       <filter-name>struts2</filter-name>
       <filter-class>
       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
       </filter-class>
      </filter>
      <filter-mapping>
       <filter-name>struts2</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping></web-app>struts.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    <package name="log" extends="struts-default">
    <action name="logo" class="action.LoginAction">
    <result name="success">/index.jsp</result>
    <result name="error">/login.html</result>
    </action>
    </package></struts>    异常:No result defined for action action.LoginAction and result error
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:364)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>login.html</title>

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        
        <link rel="stylesheet" type="text/css" href="../css/indexCss.css">
    <style type="text/css">
    td {border:0px;}

    </style>
    <script type="text/javascript">
    var ajax;
    function check(){
    var form=document.myform;
    if(form.userName.value==""){
    alert("用户名不能为空");
    return ;
    }
    if(form.pwd.value==""){
    alert("密码不能为空");
    return  ;
    }
    //ajax=createXMLHttpRequest();
    //var url="logincheck.jsp?userName="+document.myform.userName.value+"&pwd="+document.myform.pwd.value;
    //ajax.onreadystatechange=showMsg;
    //ajax.open("GET",url,true);
    //ajax.send(null);
    }

    function showMsg(){
    if(ajax.readyState==4 && ajax.status==200){
    var result=ajax.responseText;
    if(result=="faile\r\n\r\n\r\n\r\n"){
    alert("登录失败");
    }else{
    document.myform.submit();
    }
    }

    }

    function createXMLHttpRequest(){
    if(window.ActiveXObject){
    return new ActiveXObject("Microsoft.XMLHTTP");
    }else if(window.XMLHttpRequest){
    return new XMLHttpRequest();
    }
    }
    </script>
      </head>
      
      <body>
        <table align="center" width="534" height="125" border=0 >
        <tr>
        <td colspan="3"><img src="../image/logo.gif" width="111" height="45"/></td>
        </tr>
        <tr class="colorTr">
        <td colspan="3">您尚未&nbsp;&nbsp;<a href="">登陆</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="register.html">注册</a>&nbsp;&nbsp;|</td>
        </tr>
        <tr class="text">
        <td colspan="3"><b>》论坛首页</b></td>
        </tr>
        </table>
        <br/>
        <form action="logo.action" name="myform" >
        <table align="center" width="534" height="100" border=1 cellpadding="0" cellspacing="0" >
        <tr>
        <td height="40px" colspan="3">&nbsp;</td>
        </tr>
        <tr>
        <td align="right">用户名  </td>
        <td align="center" colspan="2"><input name="userName" type="text"/></td>
        </tr>
        <tr height="30px">
        <td align="right">密码  </td>
        <td align="center" colspan="2"><input type="password" name="pwd"/></td>
        </tr>
        <tr>
        <td>&nbsp;</td>
        <td align="center" colspan="2"><input type="button"  value="登陆" onclick="check();" /></td>
        </tr>
        <tr>
        <td height="40px" colspan="3">&nbsp;</td>
        </tr>
        </table>
        </form>
      </body>
    </html>
    LoginAction:
    package action;import com.opensymphony.xwork2.ActionSupport;import dao.UserImp;public class LoginAction extends ActionSupport { private String userName;
    private String pwd;
    public String getUserName() {
    return userName;
    }
    public void setUserName(String userName) {
    this.userName = userName;
    }
    public String getPwd() {
    return pwd;
    }
    public void setPwd(String pwd) {
    this.pwd = pwd;
    }
    public String execute() throws Exception {
    if(new UserImp().findUser(userName,pwd)==null){
    return SUCCESS;
    }
    return ERROR;
    }
    }没有整合别的东东