java - 没有为与上下文路径 [/Struts2Application] 关联的 namespace [/] 和操作名称 [LoginClass] 映射的操作。 - [未知位置]

标签 java xml jsp struts2 action-mapping

为什么我在我的第一个 struts2 应用程序中遇到此错误

Home.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginClass" method="post">
<table>
<tr>
<td>User Name :</td><td><input type="text" name="Uname"></td>
</tr>
<tr>
<td>Password :</td><td><input type="text" name="Pwd"></td>
</tr>
<tr>
<td><input type="submit" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>

Struts.xml:

<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
   <struts>
   <package name="Default" extends="Struts_default">
   <action name="LoginClass" class="com.struts2.LoginCheckingClass" method="execute">
   <result name="success">/LoginSuccessPage.jsp</result>
   <result name="Notsuccess">/Home.jsp</result>   
   </action>   
   </package>   
   </struts>

LoginCheckingClass.java:

   package com.struts2;

public class LoginCheckingClass {


    private String name;

       public String execute() throws Exception {
          return "success";
       }

       public String getName() {
          return name;
       }

       public void setName(String name) {
          this.name = name;
       }

}

Web.xml:

<web-app 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"
 version="2.5">
  <display-name>Struts2Application</display-name>
  <welcome-file-list>
    <welcome-file>home.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>

这个问题在早些时候向我提出,所以我用这个 Struts2:There is no Action mapped for namespace [/] and action name [hello] associated with context path [/struts2App1] 修复了但现在无法解决这个问题。

有人告诉我我哪里做错了吗?

最佳答案

定义您的<package>配置为

<package name="default" namespace="/" extends="struts-default">
   <action name="LoginClass" class="com.struts2.LoginCheckingClass" method="execute">
     <result name="success">/LoginSuccessPage.jsp</result>
     <result name="Notsuccess">/Home.jsp</result>   
   </action>   
</package>

您需要提供 namespace属性,更正struts-default包名,然后将配置文件重命名为 struts.xml即全部小写。

关于java - 没有为与上下文路径 [/Struts2Application] 关联的 namespace [/] 和操作名称 [LoginClass] 映射的操作。 - [未知位置],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760923/

相关文章:

android,哪种形式的数据存储在访问速度和安全性方面更好?

javascript - 在 HTML 中向按钮添加操作

java - 在多个 war 之间切换链接

java - 在回收者 View 中选择单个复选框

java - 如何防止 JAXB 在编码时绑定(bind) @XmlRootElement 的父类(super class)方法?

java - CAMT.053 Java 解析器

java - page.jsp 不工作

java - 如何使用gradle在android项目中生成jacoco报告

java - 返回字符串的函数的 C++ 执行顺序

java - 将 JavaFX 中的折线图和散点图组合成多个系列