Reputation: 2101
Don't work servlet to .jsp
connection.
I have doPost
in servlet:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF8");
getUser(req, resp);
}
private void getUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getParameter("id");
//In future implements database worker this for check
User user = new User(1, "test", "test", "test", new Timestamp(System.currentTimeMillis()));
req.setAttribute("user", user);
req.getRequestDispatcher("user.jsp").forward(req, resp);
}
And user.jsp
file which use User
object for view on web page:
<h1>User view</h1><br />
<ul>
<% User user = (User) request.getSession().getAttribute("user"); %>
<li>Id: <% user.getId(); %></li>
<li>Name: <% user.getName(); %></li>
<li>Login: <% user.getLogin(); %></li>
<li>Email: <% user.getEmail(); %></li>
<li>Create date: <% user.getCreateAccount(); %></li>
</ul><br />
<a href="index.jsp">menu</a>
But it's don't work. On user's web-page all information is empty. All block <ul>
don't view. I see only href
to menu. And i don't understand why. Please tell me what wrong? Why? How correct it? Thank You!
Upvotes: 1
Views: 602
Reputation: 36
I think that your jsp have some syntax error. e.g:<% user.getId(); %>. the proper syntax : <%=user.getId()%>. You can try it:
<% User user = (User) request.getSession().getAttribute("user"); %>
<ul>
<li>Id: <%=user.getId()%></li>
<li>Name: <%=user.getName()%></li>
<li>Login: <%=user.getLogin()%></li>
<li>Email: <%=user.getEmail()%></li>
<li>Create date: <%=user.getCreateAccount()%></li>
</ul><br/>
<a href="index.jsp">menu</a>
Upvotes: 2
Reputation: 5948
In Servlet you are putting User object into request but in Jsp you are looking it up from session.
Try this in your JSP:
User user = (User) request.getAttribute("user");
Upvotes: 5