访问用注解配置的action却显示找不到namespace

这是url:
图片说明

这是Action:
图片说明

这是web.xml
图片说明

这是错误:
图片说明

我明明配置了action却说我没有

xml
没有配吧,看看struts.xml 里面,这里面你没有配置。

https://www.jb51.net/article/81490.htm
图片上没有截取全。注解配的就在链接里

图片说明

action可以设置为要触发的动作

xml配置的问题

/**

  • Struts2基于注解的Action配置

  • */

@ParentPackage("struts-default")

@Namespace("/annotation_test")

@Results( { @Result(name = "success", location = "/main.jsp"),

    @Result(name = "error", location = "/error.jsp") }) 

@ExceptionMappings( { @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") })

public class LoginAction extends ActionSupport {

private static final long serialVersionUID = 2730268055700929183L;  

private String loginName;   

private String password;   



@Action("login") //或者写成  @Action(value = "login")  

public String login() throws Exception {   



    if ("yjd".equals(loginName) && "yjd".equals(password)) {   

        return SUCCESS;   

    } else {   

        return ERROR;   

    }   

}   

@Action(value = "add", results = { @Result(name = "success", location = "/index.jsp") })   

public String add() throws Exception {   

    return SUCCESS;   

}   

public String getLoginName() {   

    return loginName;   

}   

public void setLoginName(String loginName) {   

    this.loginName = loginName;   

}   

public String getPassword() {   

    return password;   

}   

public void setPassword(String password) {   

    this.password= password;   

}   

}

这样就完成了一个基于注解的action配置。

总结常用的注解如下:

Namespace:指定命名空间。

ParentPackage:指定父包。

Result:提供了Action结果的映射。(一个结果的映射)

Results:“Result”注解列表

ResultPath:指定结果页面的基路径。

Action:指定Action的访问URL。

Actions:“Action”注解列表。

ExceptionMapping:指定异常映射。(映射一个声明异常)

ExceptionMappings:一级声明异常的数组。

InterceptorRef:拦截器引用。

InterceptorRefs:拦截器引用组。