Я работаю над учебником из этой книги JSP Murach .В примере, над которым я работаю, пользователь просит ввести текст в три поля в index.jsp.Поля отправляют свои записи в сервлет, и сервлет doPost проверяет, было ли какое-либо из трех полей оставлено пустым.Если это происходит, index.jsp отправляется снова, и любые поля, которые не были пустыми, заполняются их предыдущими записями.Я думаю, что я сделал это, как показано в книге, а также то, что показывает этот сайт в разделе 3. Передача объектов , но я все еще получаю следующую ошибку:
javax.el.PropertyNotFoundException: свойство [inputA] недоступно для чтения по типу [package01.User]
Возможно, мой класс User установлен неправильно?Я не очень понимаю, как JSP должен понимать «сообщение» или «пользователь».Ясно, что он не понимает «пользовательские» свойства inputA, inputB, inputC.
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Index JSP</title>
</head>
<body>
<p>Index JSP body</p>
<p>${message}</p>
<form action="servlet01" method="post">
<input type="hidden" name="nextPage" value="revisitIndex">
Input A:<input title="A" type="text" name="inputA" value="${user.inputA}"><br>
Input B:<input title="B" type="text" name="inputB" value="${user.inputB}"><br>
Input C:<input title="C" type="text" name="inputC" value="${user.inputC}"><br>
<input type="submit" value="Next Page">
</form>
</body>
</html>
Servlet01 doPost
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nextPage = request.getParameter("nextPage");
if (nextPage == null){
nextPage = "continueToThanks";
}
String url = "/thanks.jsp";
String message = "";
if(nextPage.equals("revisitIndex")){
String inputA = request.getParameter("inputA");
String inputB = request.getParameter("inputB");
String inputC = request.getParameter("inputC");
User user = new User(inputA, inputB, inputC);
if(inputA == null || inputB == null || inputC == null ||
inputA.isEmpty() || inputB.isEmpty() || inputC.isEmpty()){
url = "/index.jsp";
message = "Please fill out all three text boxes.";
}
request.setAttribute("message", message);
request.setAttribute("user", user);
}
getServletContext()
.getRequestDispatcher(url)
.forward(request, response);
}
Класс пользователя
package package01;
class User {
private String inputA;
private String inputB;
private String inputC;
User(String a, String b, String c){
inputA = a;
inputB = b;
inputC = c;
}
public void setInputA(String a){ inputA = a; }
public void setInputB(String b){ inputB = b; }
public void setInputC(String c){ inputC = c; }
public String getInputA(){ return inputA;}
public String getInputB(){ return inputB;}
public String getInputC(){ return inputC;}
}