0

I am trying to display the data from the database, but I am getting the error

LoginSuccess.java

package java4s;


import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import java4s.EmployeeService;

@Controller
@Scope("session")
public class LoginSuccessController {

    @Autowired
    EmployeeService emp_service;

    @RequestMapping(value = "/login", method=RequestMethod.POST)
    public ModelAndView loginvalidateForm(ModelMap model, @ModelAttribute("loginForm") Employee employee, HttpSession session) {


        if(emp_service.validateLogin(employee.getUsername(), employee.getPassword()))
        {
            List<Employee> user_info = emp_service.getUserinfo(employee.getUsername());
            session.setAttribute("session_username", employee.getUsername()); //Add value to session variable
            model.addAttribute("result", "Login Success");
            model.addAttribute("user_info", user_info);
        }
        else
            model.addAttribute("result", "Login Failure");
        return new ModelAndView("LoginSuccess",model);

    }
}

LoginSuccess.jsp

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login Result</title>
</head>
<body>
${result}
<c:if test="${session_username != null }">Hello ${session_username}!
<div align="center" style="top:100px;">
<H1>My Information</H1>
<TABLE>
    <TR>
        <TD>Username :</TD>
        <TD>${$user_info.username}</TD>
    </TR>
    <TR>
        <TD>Firstname :</TD>
        <TD>${$user_info.firstname}</TD>
    </TR>
</TABLE>
</div>
</c:if>
</body>
</html>

EmployeeServiceImpl.java

package java4s;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import java4s.Employee;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;

public class EmployeeServiceImpl implements EmployeeService {

    @Autowired
    DataSource dataSource;

    @Override
    public List<Employee> getUserinfo(String username) {
        // TODO Auto-generated method stub

        String sql_query = "SELECT * FROM EmployeeInfo WHERE username = '" + username + "'";
        List<Employee> user_info = new ArrayList<Employee>();

        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        user_info = jdbcTemplate.query(sql_query, new RowMapper<Employee>(){

            @Override
            public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
                Employee employee = new Employee();

                employee.setUsername(rs.getString("username"));
                employee.setFirstname(rs.getString("firstname"));

                return employee;
            }
        });
        return user_info;
    }
}

Error

org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/LoginSuccess.jsp at line 18

15: <TABLE>
16:     <TR>
17:         <TD>Username :</TD>
18:         <TD>${user_info.username}</TD>
19:     </TR>
20:     <TR>
21:         <TD>Firstname :</TD>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:920)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:827)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

root cause

java.lang.NumberFormatException: For input string: "username"
    java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    java.lang.Integer.parseInt(Integer.java:492)
    java.lang.Integer.parseInt(Integer.java:527)
    javax.el.ListELResolver.coerce(ListELResolver.java:173)
    javax.el.ListELResolver.getValue(ListELResolver.java:52)
    org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
    org.apache.el.parser.AstValue.getValue(AstValue.java:183)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
    org.apache.jsp.jsp.LoginSuccess_jsp._jspx_meth_c_005fif_005f0(LoginSuccess_jsp.java:125)
    org.apache.jsp.jsp.LoginSuccess_jsp._jspService(LoginSuccess_jsp.java:85)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:920)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:827)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
1

1 Answer 1

1

Try this in the jsp.

<c:forEach items="${user_info}" var="user_info">
    <c:out value="${user_info.username}" />
</c:forEach>
Sign up to request clarification or add additional context in comments.

2 Comments

It Is print the username, but I want to print all the elements in the user_info
Right, so just repeat the process. just <c:out everything. just copy and past the <c:out line and replace username with whatever is in user_info

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.