当前位置:编程学习 > JAVA >>

Status 2报错:Could not find action or result,请帮忙

上午都好好的,下午重启服务器就挂了。

报错信息如下:

警告: Could not find action or result
There is no Action mapped for namespace [/] and action name [login] associated with context path [/struts2demo]. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:501)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)




下面是配置文件和java代码以及jsp文件:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>struts2 demo</display-name>

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

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>


struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="basicstruts2" extends="struts-default">

<action name="login">
<result>/login.jsp</result>
</action>

<action name="user" class="com.demo.action.UserAction">
              <!-- 定义转发路径对应的字符串名  -->
  <result name="success">/success.jsp</result>
  <result name="error">/error.jsp</result>
</action> 

</package>
</struts>


UserAction.java
package com.demo.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

private static final long serialVersionUID = 1L;
private String username;
private String userpass;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
@Override
public String execute() throws Exception {
if ("Mike".equals(username) && "123".equals(userpass) || "张三".equals(username) && "abc".equals(userpass))
return "success";
else
return "error";
}
}


login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登陆页面</title>
  </head>
   
 <body>
         <!-- 提交到action  -->
<form action="user.action" method="post">
用户名:
               <!-- 参数名和action中的属性名一样  -->
<input type=text name=username>
<br>
密  码:
<input type=password name=userpass>
<br>
<input type=submit name=subm value="提交">
<input type=reset name=reset value="取消">
</form>
</body>

</html>


success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>成功页面</title>
  </head>
   
  <body>
    <p align="center">登陆成功!!!您的用户名是<s:property value="username"></s:property></p>
  </body>
</html>


error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>失败页面</title>
  </head>
   
  <body>
    <p align="center">登陆失败!!!</p>
  </body>


小弟刚刚接触Status,次问题出现多次,试了网上好多方法,无效。请各位帮忙。谢了先。 --------------------编程问答-------------------- 我已经找到解决方案,可不知道原因。
我用的是maven配置,struts.xml原先放在resources下面,也是没问题了。不知为什么,后来死活就不行了。无奈把struts.xml放到了classes就可以了。虽然解决了,可不知为什么会这样。
求解?  --------------------编程问答--------------------

 <action name="login">
            <result>/login.jsp</result>
 </action>

这里没有配置 class属性 --------------------编程问答--------------------
引用 2 楼 IT0918liu 的回复:
Java code?1234 <action name="login">            <result>/login.jsp</result> </action>
这里没有配置 class属性


不是这个原因,不加class没关系。纯jsp就没有class。主要还是struts.xml路径问题。一楼的回答。
可不知为何会这样。 --------------------编程问答-------------------- <package name="basicstruts2" extends="struts-default">
这里没有指定namespace
<package name="basicstruts2" namespace="/" extends="struts-default">
只是修改后的,我试了没问题。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,