一个基础有关问题,但是找不到解决方法:零注解的struts2 命名空间下找不到指定的action 求大神帮忙
一个基础问题,但是找不到解决办法:零注解的struts2 命名空间下找不到指定的action 求大神帮忙
最近弄了下零注解配置的SSH项目,在struts部分发现运用s标签会出现一些奇奇怪怪的东西,本来可以好好运行的项目,换上了s标签却出现了找不到指定action的问题,下面贴代码。
先说说action,这部分代码是绝对没有问题的,只是让大家看看相关注解:
然后是jsp视图页面,代码中action=login以及namespace=/Login就是找不到的action以及命名空间:
内容就这么多,希望有人帮忙看看,关于注解方面也可以一起探讨探讨
------解决思路----------------------
你可以先用测试工具,发个post请求测试这个可不可用
------解决思路----------------------
没有用过,看了些资料。@Namespace("/Login")换成@Component("Login")试试看看行不行
最近弄了下零注解配置的SSH项目,在struts部分发现运用s标签会出现一些奇奇怪怪的东西,本来可以好好运行的项目,换上了s标签却出现了找不到指定action的问题,下面贴代码。
先说说action,这部分代码是绝对没有问题的,只是让大家看看相关注解:
@Namespace("/Login")
@ParentPackage("struts-default")
@Results({
@Result(name = "success",location = "/index.jsp"),
@Result(name = "error",location = "/login/fail.jsp")
})
@Controller
public class LoginAction extends BaseAction implements Serializable, ModelDriven<Admin> {
private static final long serialVersionUID = 1351937910832424955L;
private Admin admin = new Admin();
public Admin getModel() {
return admin;
}
private LoginService loginService;
@Autowired
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
@Action(value = "login")
@Validations(requiredStrings = {
@RequiredStringValidator(type = ValidatorType.SIMPLE, trim = true, fieldName = "admin.username", message = "请输入用户名.*"),
@RequiredStringValidator(type = ValidatorType.SIMPLE, trim = true, fieldName = "admin.password", message = "请输入密码.*")
}
)
public String login(){
httpServletRequest = ServletActionContext.getRequest();
admin = loginService.findAdminByNameAndPassword(admin.getUsername(), admin.getPassword());
if (admin != null) {
httpServletRequest.setAttribute("username", admin.getUsername());
return SUCCESS;
} else {
addFieldError("", "用户名密码错误");
return ERROR;
}
}
}
然后是jsp视图页面,代码中action=login以及namespace=/Login就是找不到的action以及命名空间:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title></title>
</head>
<body>
<s:form action="login" namespace="/Login" method="post">
<s:textfield label="用户名" name="username"/>
<s:password label="密码" name="password"/>
<s:submit label="登录"/>
</s:form>
</body>
</html>
内容就这么多,希望有人帮忙看看,关于注解方面也可以一起探讨探讨
------解决思路----------------------
你可以先用测试工具,发个post请求测试这个可不可用
------解决思路----------------------
没有用过,看了些资料。@Namespace("/Login")换成@Component("Login")试试看看行不行