JSP: недопустимый атрибут класса useBean «класс javaPackage.java»

1

Я пытаюсь сделать это учебное пособие: http://www.javatpoint.com/registration-form-in-jsp. Однако, когда я пытаюсь добавить некоторых пользователей в свою базу данных, я получаю эту ошибку:

org.apache.jasper.JasperException: /register/newAccountCreated.jsp (line: 7, column: 0) The value for the useBean class attribute bean.AppUser is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1242)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1196)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2444)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2450)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:474)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3529)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:251)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Проверяя эту ошибку, кто-то указал, что мне может не хватать jsp: setProperty, но это не так. Мой jsp (где моя форма указывает) выглядит так:

<html>
<head>
<%@page import="bean.RegisterUser"%>  
<jsp:useBean id="obj" class="bean.AppUser" />  

<jsp:setProperty property="*" name="obj"/> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>


<%  
int status=RegisterUser.register(obj);  
if(status>0)  
out.print("You Were successfully registered");  

%>  
</body>
</html>

Сетку класса My My appUser:

package bean;
public class AppUser {

    private String userName;
    private String userPass;
    private boolean userActive;
    private String userSignInDate;

    public AppUser(String pUserName, String pUserPass){
        this.userActive = true;
        this.userName = pUserName;
        this.userPass = pUserPass;
    }

    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserPass() {
        return userPass;
    }
    public void setUserPass(String userPass) {
        this.userPass = userPass;
    }
    public boolean isUserActive() {
        return userActive;
    }
    public void setUserActive(boolean userActive) {
        this.userActive = userActive;
    }
    public String getUserSignInDate() {
        return userSignInDate;
    }
    public void setUserSignInDate(String userSignInDate) {
        this.userSignInDate = userSignInDate;
    }
}
  • 1
    Как вы развертываете свое приложение на сервере?
  • 0
    запустить как-> запустить на сервере-> там я бы выбрал сервер Tomcat ... теперь я догадываюсь ... я должен скопировать свой проект в каталог Tomcat правильно? @RaviThapliyal Я думал, что я делаю развертывание моего проекта в кота ....
Теги:
jsp
javabeans

1 ответ

1
Лучший ответ

Проблема в том, что вы не предоставили конструктор по умолчанию для вашего класса bean.AppUser. В любое время вы предоставляете класс с явным конструктором, компилятор больше не предоставляет конструктор по умолчанию без аргументов, который он делает, если он не объявляет никаких конструкторов.

Стандартные действия JSP, такие как <jsp:useBean>, называются так, потому что они работают только с JavaBeans. JavaBean должен иметь конструктор с нулевым аргументом и должен разрешать доступ к его свойствам с использованием методов getter и setter.

  • 0
    Это сработало! большое спасибо !, теперь у меня есть и проблема с этим stament PreparedStatement ps=con.prepareStatement("insert into appuser values(?,?)"); это ничего не выдаёт, просто не проходит
  • 0
    Пожалуйста, обновите ваш вопрос соответствующим кодом и трассировкой стека исключений, и дайте мне знать здесь. Я еще раз посмотрю.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню