Could not find action or result

Struts文件





	
	
	
	

	
		
		
			Users_login_success.jsp
			Users_login.jsp
		
		
			Users_login.jsp
		
	


添加表单验证需要在Java类中覆盖validate方法,这是用于用户登录的Java类:

package com.joey.action;

import com.joey.entity.Users;
import com.joey.service.UsersDAO;
import com.joey.service.impl.UsersDAOImpl;
import com.opensymphony.xwork2.ModelDriven;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.struts2.interceptor.validation.SkipValidation;

public class UsersAction extends SuperAction implements ModelDriven{

	private static Logger logger = LogManager.getLogger(UsersDAOImpl.class.getName());
    private Users user=new Users();

    /**
     * 用户登录
     * @return
     */
    public String login(){
        logger.info("正在登录");
        UsersDAO usersDAO=new UsersDAOImpl();
        if (usersDAO.usersLogin(user)){
        	// 在session中保存成功登陆的用户名
        	session.setAttribute("loginUserName", user.getUsername());
            return "login_success";
        }else {
            return "login_failure";
        }
    }
    
    /**
     * 用户注销
     * @return
     */
    @SkipValidation//跳过验证
    public String logout() {
    	 logger.info("正在注销");
    	if(session.getAttribute("loginUserName")!=null) {
    		session.removeAttribute("loginUserName");
    	}
    	return "logout_success";
    }
    
    /**
     * 表单验证
     */
    @Override
    public void validate() {
    	// 用户名验证
    	if("".equals(user.getUsername().trim())) {
    		this.addFieldError("usernameError", "用户名不能为空!!");
    	}
    	// 密码长度验证
    	if(user.getPassword().length()<6) {
    		this.addFieldError("usernameError", "密码长度不少与6");
    	}
    }

    @Override
    public Users getModel() {
        return this.user;
    }
}

在覆盖validate方法之前可以正常登录,但是添加了表单验证后就报错

[13:24:01:440] [ERROR] - org.apache.struts2.dispatcher.Dispatcher.logConfigurationException(Dispatcher.java:590) - Could not find action or result: /student/users/Users_login.action
com.opensymphony.xwork2.config.ConfigurationException: No result defined for action com.joey.action.UsersAction and result input

我的解决方法是为登录的action添加一个result标签:

 
	Users_login_success.jsp
	Users_login.jsp
	Users_login.jsp
OK啦!!

这是答案来源:https://stackoverflow.com/questions/5742281/no-result-defined-for-action-and-result-input

你可能感兴趣的:(Java)