当我从 spring mvc 中的数据库中检索值时,我正在获取对象

I am Getting the Object when i retrieve the values from the database in spring mvc

我只是 spring mvc 的初学者。我的任务是使用 spring 将数据库中的值列出到 jsp 页面的下拉列表中。 当我这样做时,我正在获取对象而不是 values.I 使用 Controller,service,DAOand command class 。这是我的代码。

服务Class:

public class  EventService implements RowMapper<EventCommand> {

    private JdbcTemplate jdbcTemplate;
     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
     @Autowired
     @Qualifier("eventManagementDAO")

     public IEventManagementDAO eventManagementDAO;

    @Override
    public EventCommand mapRow(ResultSet rs, int rowNum) throws SQLException {
        EventCommand eventcommand=new EventCommand();   
        eventcommand.setemployee(rs.getString("firstname"));
        String test2=eventcommand.getemployee();        
        return eventcommand;

    } }

这是 DAO class

public class EventManagementDAO implements IEventManagementDAO{
    public List<EventCommand> showEmployee(){
        EventList eventlist=new EventList();

    DataSource dataSource = DataFactory.getDataSource();
    JdbcTemplate template = new JdbcTemplate(dataSource);

    String sql = new String("SELECT empid,firstname from empde ") ;


    List<EventCommand> employee = (List<EventCommand>) template.query(sql, new EventService());  

    return employee;

}
}

这是我的 JSP 页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Assigning Employee for the Event</title>
</head>
<body>
<form:form name="eventemployeeform" action="eventassign" commandName="eventCommand" method="POST">
<table><tr><td><h3>Select the event</h3></td><td><form:select path="Eventname">
<form:option value="0" label="Select" />
<form:options items="${eventname}" itemValue="eventname" itemLabel="eventname" />
</form:select><br/></td></tr>
<tr><td><h3>Select the employee</h3></td><td>
<form:select path="Employee">
<form:option value="NONE" label="Select" />
<form:options items="${employeelist}"/>
</form:select></td></tr> 
<tr><td><h3>Select the Products</h3></td><td><form:select path="Products">
<form:option value="0" label="Select" />
<form:options items="${Products}" itemValue="products" itemLabel="products" />
</form:select><br/></td></tr>
</table>

</form:form>
</body>
</html>

这是我的控制器

public ModelAndView getemployeeassign(@ModelAttribute("eventCommand")EventCommand eventCommand){
        Map referenceData= new HashMap();
        List<EventCommand> newlist=new ArrayList<EventCommand>();


        newlist.addAll((service.eventManagementDAO.showEmployee()));
        referenceData.put("employeelist",newlist);
        return new ModelAndView("EventEmployee",referenceData);
    }

这是我的事件命令class

package com.wity.command;

public class EventCommand {

    String Eventname;
    String employee;
    String Products;
    public String getEventname() {
        return Eventname;
    }
    public void setEventname(String Eventname) {
        this.Eventname = Eventname;
    }
    public String getemployee() {

        return employee;

    }
    public void setemployee(String employee) {
        this.employee = employee;
        //System.out.println(employee);

    }
    public String getProducts() {
        return Products;
    }
    public void setProducts(String Products) {
        this.Products = Products;
    }

}

****上面的程序正确地从数据库中读取数据(多行)但是它显示的是对象而不是字符串。****

正在获取下拉框中的输出 因为我不能 post 图片 我的输出是 com.hari.command.EventCommand@131e2c6 com.hari.command.EventCommand@53a8a1 帮我解决一下。我必须获取字符串中的值而不是对象中的值。

不能说我 100% 理解您的意思,但在我看来,在您的 JSP 页面上您需要显示 eventCommand.getEmployee() 而不是 eventCommand。没有您的 JSP 页面代码很难分辨。

示例:

<form:select path="Employee">
    <form:option value="NONE" label="Select" />
    <form:options items="${employeelist}" itemLabel="employee"/>
</form:select>

如果我理解正确,您必须指定正确的值和标签以显示正确的值,并且 post 正确的 ID 再次从 JSP 返回后端。例如,使用 <form:select> 你可以这样做...

<form:select path="employee" id="employeeSelect">
    <form:options items = "${employee}" itemValue="${employee.id}" itemLabel="${employee.firstname}"/>
</form:select>  

目前我相信您没有指定 属性,这就是它打印对象 ID 作为默认 toString() 的原因。