Java Struts2注释(约定插件)
我在struts2注释中遇到了一个奇怪的问题,让我先详细说明一下Java Struts2注释(约定插件),java,struts2,annotations,Java,Struts2,Annotations,我在struts2注释中遇到了一个奇怪的问题,让我先详细说明一下 @Results({ @Result(name = "input", location = "main.jsp"), @Result(name = "list", location = "list.jsp") }) public class MainAction extends ActionSupport { private PortalUser user; @Autowired pri
@Results({
@Result(name = "input", location = "main.jsp"),
@Result(name = "list", location = "list.jsp")
})
public class MainAction extends ActionSupport {
private PortalUser user;
@Autowired
private PortalUserService portalUserService;
public String execute() throws Exception {
return INPUT;
}
@Action("addUser")
public String addUser() throws Exception {
portalUserService.addUser(user);
return listUser();
}
@Action("listUser")
@SkipValidation
public String listUser() throws Exception {
List theUserList = portalUserService.getPortalUserList(null);
ServletActionContext.getRequest().setAttribute("userList", theUserList);
return "list";
}
@Action("modifyUser")
public String modifyUser() throws Exception {
List theUserList = portalUserService.getPortalUserList(null);
ServletActionContext.getRequest().setAttribute("userList", theUserList);
return "list";
}
public void validate() {
if (user != null && StringUtils.isBlank(user.getUserName()))
addFieldError("accountBean.userName", "User name is required.");
System.out.println("validate @@@@@");
}
public PortalUser getUser() {
return user;
}
public void setUser(PortalUser user) {
this.user = user;
}
}
这是struts2操作类,我正确配置它并键入url
http://domain/listUser 它将列出所有用户
http://domain/modifyUser 它可以修改用户
在tomcat中,所有的事情都进行得很顺利,类文件被分解了
但是,当我使用war文件构建并将其部署到TomcatWebApp文件夹中时,页面报告
没有操作名称listUser
这两种场景之间的区别是分解类文件和归档类文件,我编译它们并将动作和其他类文件放入其中
我对这种现象感到困惑
因此,任何建议和建议都将不胜感激 我做了如下实验并得出结论,使用struts2注释,action类不能移动到jar文件中,它必须位于WEB-INF/类中
我承认struts2约定将扫描特定包中的action类,因此我只将action类保留在WEB-INF/classes/../action文件夹中,jar其他类文件并将其放入WEB-INF/lib中,默认情况下插件不会扫描jar或类路径,只扫描WEB-INF/classes。您可能希望查看插件的并查找struts.convention.action.includeJars值,该值允许您列出您还希望查找文件的jar 您可以使用检查操作映射