Для действия в struts2 не определен результат

#jsp #struts2

#jsp #распорки 2

Вопрос:

Вот мой struts.xml

 <struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="reg" class="action.StudentAction">
        <result name="success">register-success.jsp</result>
        <result name="error">register-error.jsp</result>
    </action>
    <action name="login" class="action.LoginAction" method="execute">
        <result name="success">hello.jsp</result>
        <result name="input">login.jsp</result>
        <result name="error">login.jsp</result>

    </action>

</package>
</struts>
 

Вот мой UserDao

 package action;

import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import util.HibernateService;
import util.Student;


public class UserDao {
public boolean find(String username,String password)
{
    Session s=HibernateService.getSession();
    String q="select * from student where username='" username "' and 
    password='" password "'";
    System.out.println(q);
    Query query=s.createQuery(q);
    Iterator<Student> it=query.iterate();
    List<Student> list=query.list();
    if(list.size()>0)
    {
        s.close();
        return true;
    }
    s.close();
    return true;

}

}
 

вот мое loginAction

 package action;

import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import util.HibernateService;


public class LoginAction extends ActionSupport{

private String username;
private String password;
UserDao dao=new UserDao();

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}
public void validate()
{
    if(username==null)
        this.addFieldError("username", "USERNAME is required");
    if(password==null)
        this.addFieldError("password", "PASSWORD is required");
}
public String execute() throws Exception {

    if(dao.find(getUsername(), getPassword()))
        return SUCCESS;
    else
    {
        this.addActionError("Invalid Username or Password");
        return ERROR;
    }
    }


}
 

и я получаю сообщение об ошибке HTTP Status 404 — нет результата, определенного для действия action.Вход в систему и ввод результата.
Также я видел много решений этой проблемы, в которых говорится о добавлении этой второй строки, но все равно это не работает
Есть предложения?
Страница регистрации работает нормально.

Комментарии:

1. 1) Внедрение SQL в ваш DAO. 2) username и password никогда не будет равен нулю после отправки формы с полями «имя пользователя» и «пароль». 3) Если есть результат с именем «ввод», вы не получите сообщение, которое получаете; убедитесь, что вы перезапустили, чтобы убедиться, что все изменения развернуты. И убедитесь, что вы повторно развертываете.

2. Когда вам надоест выполнять перезапуски и повторные развертывания, начните с базового руководства, которое настраивает результаты в соответствии с вашей конфигурацией xml.