命名空间[/]和与上下文路径[/ projectName]关联的操作名称[actionName]没有映射。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名空间[/]和与上下文路径[/ projectName]关联的操作名称[actionName]没有映射。相关的知识,希望对你有一定的参考价值。
我正在使用注释开发struts 2.0并创建了一个web项目,我正在进行登录并重定向成功登录到另一个jsp。但是,每当我尝试登录时,它都会显示一条错误消息: - 没有映射名称空间[/]的动作和与上下文路径[/ strutsDemo2]相关联的动作名称[welcome]。
我已将以下jar文件添加到我的项目中:
asm-3.3.jar asm-all-2.2.3.jar cglib-nodep-2.2.3.jar commons-fileupload-1.3.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freemarker-2.3。 19.jar javassist-3.11.0.ga.jar ognl-3.0.6.jar struts2-convention-plugin-2.3.15.1.jar struts2-core-2.3.15.1.jar xwork-core-2.3.15.1.jar
我的jsp是:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!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=ISO-8859-1">
<title>Demo</title>
</head>
<body>
<s:form action="welcome" validate="true">
<s:textfield name="userName" label="userName"></s:textfield>
<s:submit value="submit"></s:submit>
</s:form>
</body>
</html>
我的动作类是:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.ValidatorType;
@Namespace("/")
@ResultPath("/")
@Results({
@Result(name="success", location="/Welcome.jsp"),
@Result(name="input", location="/index.jsp")
})
public class Welcome extends ActionSupport{
private String userName;
private String message;
@RequiredStringValidator(type=ValidatorType.FIELD, message="Name is Required")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Action(value="welcome")
public String execute()
{
return SUCCESS;
}
}
Veb.hml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>strutsDemo2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
请将你的<s:form action="welcome" validate="true">
改为<s:form action="Welcome" validate="true">
。
在标签的action属性中使用“Welcome”而不是“welcome”。 “W”的大写
以上是关于命名空间[/]和与上下文路径[/ projectName]关联的操作名称[actionName]没有映射。的主要内容,如果未能解决你的问题,请参考以下文章
如何从默认 kops 命令更改 kubernetes 上下文中的默认命名空间?
Spring 3.0 -- 无法为 XML 模式命名空间上下文找到 Spring NamespaceHandler