Java PropertyNotFoundException в JSP - PullRequest
       50

Java PropertyNotFoundException в JSP

0 голосов
/ 07 марта 2019

У меня есть сервлет Java как

package com.nh.bookapp;

import com.books.Book;

import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class BookApp
 */




@WebServlet("/BookApp")
public class BookApp extends HttpServlet {

    private static final long serialVersionUID = 1L;
    List <Book> Books = new ArrayList<Book>();

    /*List<String> BookNames = new ArrayList<String>();
    List<String> Authors = new ArrayList<String>();
    List<String> Costs = new ArrayList<String>();*/

    /**
     * @see HttpServlet#HttpServlet()
     */
    public BookApp() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
        String bookName = request.getParameter("bookname");
        String author = request.getParameter("authorname");
        String bookCost = request.getParameter("cost");
        String url = ("");
        /*BookNames.add(bookName);
        Authors.add(author);
        Costs.add(cost);*/
        Book newBook = new Book();
        if(bookName.length()!=0&&author.length()!=0&&bookCost.length()!=0)
        {
            newBook.authorName=author;
            newBook.name=bookName;
            newBook.cost = Float.parseFloat(bookCost);
            Books.add(newBook);
            request.setAttribute("Book", newBook);
            url =("/displayBook.jsp");
        }
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
        dispatcher.forward(request, response);

    }

}

Класс Book определяется как: пакет com.books;

public class Book {
        public String name;
        public String authorName;
        public Float cost;
}

index.html выглядит следующим образом:

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Create a book entry</title>
</head>
<body>
<form name="BookForm" id="fBook" action="BookApp" method="post">
Name:
<input type="text" name="bookname" id="tbBook">
<br>
Author:
<input type="text" name="authorname" id="tbAuthor">
<br>
Cost:
<input type="text" name="cost" id="tbCost">
<br>

<input type ="submit" value="Create">
</form>

</body>
</html>

И displayBook.jsp:

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Create a book entry</title>
</head>
<body>
<form name="BookForm" id="fBook" action="BookApp" method="post">
Name:
<input type="text" name="bookname" id="tbBook">
<br>
Author:
<input type="text" name="authorname" id="tbAuthor">
<br>
Cost:
<input type="text" name="cost" id="tbCost">
<br>

<input type ="submit" value="Create">
</form>

</body>
</html>

Когда я запускаю сервер, я вижу ошибку под основной причиной как

javax.el.PropertyNotFoundException: Property [name] not found on type [com.books.Book]

У меня есть необходимый импорт в файле JSP, и переменные объявлены в классе, но я не могу получить к ним доступ, несмотря на то, что они общедоступны.

Я не могу понять, что и где происходит не так. Я пытался использовать

 <c:out value="${Book.name}" />

как было предложено в другом ответе, но это не сработало.

...