Java-сервлеты: запрос.функции getattribute всегда вернуть значение null.
Функция addiFAbssent в классе DepartmentBean проверяет, существует ли элемент уже в контейнере:
Что я уже пробовал:
bool f; public void addIfAbsent(UserBean userBean) { if (users.stream().anyMatch(x -> x.getUsername().equals(userBean.getUsername()))) { f = false; } else { f = true; users.add(userBean); } } }
В моем сервлете я пытаюсь отправить сообщение об успешной регистрации(если f=false, то у них нет имени пользователя с таким же именем):
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { doAll(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void doAll(HttpServletRequest request, HttpServletResponse response) throws Exception { DepartmentBean dp = new DepartmentBean(); UserBean user = new UserBean(); DepartmentBean departmentBean = read(); String userName = request.getParameter("username"); String password = request.getParameter("password"); user.setPassowrd(password); user.setUsername(userName); departmentBean.addIfAbsent(user); if(dp.f = true) { String Message = "msg"; /*Set attribute msg of Message*/ request.setAttribute(Message, "msg"); RequestDispatcher rd=request.getRequestDispatcher("index.jsp"); rd.forward(request, response); write(departmentBean); } } public static DepartmentBean read() throws JAXBException { JAXBContext context = JAXBContext.newInstance(DepartmentBean.class, UserBean.class); Unmarshaller unmarshaller = context.createUnmarshaller(); return (DepartmentBean) unmarshaller.unmarshal(new StreamSource(new File("1.xml"))); } public static void write(DepartmentBean department) throws JAXBException { JAXBContext context = JAXBContext.newInstance(DepartmentBean.class, UserBean.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.marshal(department, new File("1.xml")); } }
В моем html я добавил этот код jsp:
<%> String s = "msg"; if (s == request.getAttribute("Message")) { out.println("<p>Successful</p>"); } else { out.println("<p>Error reg</p>"); } <%>
Когда я проверяю xml-файл, запись успешна, но в моем html-файле нет "успешного" абзаца. Он всегда возвращает null, абзац "Error reg".
0x01AA
1.) Что такое с departmentBean
против. dp
Последнее только декларируется, но не участвует?
2.) Также это выглядит подозрительно: if(dp.f = true)
... Разве этого не должно быть if(dp.f == true)
?