Не удается решить проблему javax.el.PropertyNotFoundException: свойство [content] не найдено для типа [java.lang.String] - PullRequest
0 голосов
/ 24 сентября 2018

Я читал те же решения проблем, но это не помогло мне.есть часть моего класса Bean с хорошим написанным геттером:

@Entity
@Table(name = "notes")
public class Note {
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column (name = "id")
    private int id;    
    @Column (name = "content")
    private String content;


    public Note() {
    }

    public Note(String title, String content, GregorianCalendar date, boolean done) {
        this.title = title;
        this.content = content;
        this.date = date;
        this.done = done;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }    

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    } 
}

Используя режим отладки, я вижу, что у меня есть ArrayList заметок из dataBase.Это значит, что связь хорошая.есть код из сервлета:

public static final String OUTPUT_LIST = "List For Pager";

// other code, not nessesary for showing  

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            Integer pageNumber =  (Integer) req.getAttribute(PAGE_NUMBER);
            if(pageNumber==null) pageNumber = 1;
            ArrayList<Note> result = new ArrayList<Note>();
            ArrayList<Note> notes = DaoDriver.getActualNotesHandler().getNotesList();
            //iteration method for filling result
            fillListForPage(pageNumber,notes,result);
            req.setAttribute(OUTPUT_LIST,result);
            RequestDispatcher requestDispatcher = req.getRequestDispatcher("/index_test.jsp");
            requestDispatcher.forward(req,resp);

Есть место, где я вызываю свой список из jsp:

<c:forEach var="note" items="${MainServlet.OUTPUT_LIST}">

      <div class="row" padding="5" >
        <div class="card-deck">
          <div class="card">
            <div class="card-header">Title1</div>
            <div class="card-body"><p>${note.content}</p></div>
            <div class="card-footer">
              <input type="checkbox" class="Done">
              <label>Done</label>
              <button>Edit Note</button>
            </div>
          </div>

    </c:forEach>

У меня есть дополнительная проблема, которая может привести к сбою моего приложения.У меня такая же ситуация, как в этом вопросе: JPA не может разрешить столбец / IntelliJ

, но у меня есть связанные данные, и быстрое исправление не решает эту проблему.

что не так с моим кодом?

UPD: Я исправил эту проблему, изменив 2 строки:

req.setAttribute("list",result);

и

<c:forEach var="note" items="${list}">

И вот почему у меня новый вопрос: почему я не могу использовать конечное строковое конечное значение (константу) из MainServlet.class для ключа свойства запроса?

1 Ответ

0 голосов
/ 24 сентября 2018

Попробуйте изменить $ {MainServlet.OUTPUT_LIST} на $ {requestScope.OUTPUT_LIST}

<c:forEach var="note" items="${requestScope.OUTPUT_LIST}">
...