当我从 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() 的原因。
我只是 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() 的原因。