【发布时间】:2014-09-30 07:56:43
【问题描述】:
您好,我正在编写一个使用 spring mvc hibernate 和 mysql 作为数据库的程序。我在 mysql db 中有两个表 employee 和 team。我使用 jsp 作为我的视图.在我的jsp中,我将团队名称从团队表加载到下拉列表中。当我从下拉列表中选择特定团队并单击提交按钮时,我想显示特定团队中的所有员工
这是我的jsp
<%@page import="java.sql.ResultSet"%>
<%@page import="com.mysql.jdbc.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!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>Insert title here</title>
</head>
<body>
<form:form method="POST" action="Search.html" modelAttribute="command">
<table>
<tr>
<form:label path="teams.teamId">Team Name</form:label>
<td>
<form:select path="teams.teamId" cssStyle="width: 150px;">
<option value="-1">Select a type</option>
<c:forEach items="${teamKey}" var="teams">
<option value="${teams.teamId}">${teams.teamName}</option>
</c:forEach>
</form:select>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="submit"> </td>
</tr>
</table>
</form:form>
<h1><a href="retunTohome.html">Home</a></h1>
</body>
</html>
我的jsp视图
控制器代码
@RequestMapping(value="/Search",method = RequestMethod.POST)
public ModelAndView fromSearch(@ModelAttribute("command") Resource resource,BindingResult result){
return new ModelAndView("redirect:/searchResult.html");
}
@RequestMapping(value="/searchResult",method = RequestMethod.GET)
public String getValue(@ModelAttribute("command") Resource resource ,Model m){
m.addAttribute("command", "Got value here"+resource.toString());
return "Search";
}
资源类
@Entity
@Table(name="Employee")
public class Resource implements Serializable {
private static final long serialVersionUID = -723583058586873479L;
@Id
@Column(name="empid")
private Integer empId;
@Column(name="empname")
private String empName;
@Column(name="empexp")
private Integer empExp;
@Column(name="empskills")
private String empSkills;
@ManyToOne
@JoinColumn(name="teamId",referencedColumnName="teamId")
private AddTeam teams;
public Integer getEmpId(){
return empId;
}
public void setEmpId(Integer empId){
this.empId=empId;
}
public String getEmpName(){
return empName;
}
public void setEmpName(String empName){
this.empName=empName;
}
public Integer getEmpExp(){
return empExp;
}
public void setEmpExp(Integer empExp){
this.empExp=empExp;
}
public String getEmpSkills(){
return empSkills;
}
public void setEmpSkills(String empSkills){
this.empSkills=empSkills;
}
public AddTeam getTeams() {
return teams;
}
public void setTeams(AddTeam teams) {
this.teams = teams;
}
}
AddTeam.class
@Entity
@Table(name="Team")
public class AddTeam {
@Id
@Column(name="teamId")
private Integer teamId;
@Column(name="teamName")
private String teamName;
public Integer getTeamId() {
return teamId;
}
public void setTeamId(Integer teamId) {
this.teamId = teamId;
}
public String getTeamName() {
return teamName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
}
ResourceDao 实现类
@Override
public void serchResources(int teamid) {
// TODO Auto-generated method stub
sessionfactory.getCurrentSession().createQuery(" FROM Resource WHERE teamId=" +teamid);
}
错误
org.springframework.beans.NotReadablePropertyException: Invalid property 'teams' of bean class [java.lang.String]: Bean property 'teams' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:665)
org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:518)
org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:495)
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:655)
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:147)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174)
org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194)
org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
org.apache.jsp.WEB_002dINF.views.Search_jsp._jspx_meth_form_005flabel_005f0(Search_jsp.java:306)
org.apache.jsp.WEB_002dINF.views.Search_jsp._jspService(Search_jsp.java:117)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
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:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我是 Spring Hibernate 应用程序的新手,我被困在这里。有什么方法可以显示所选团队的员工...
感谢您的建议...
【问题讨论】:
-
什么是 AddTeam ?你是从这个javacodegeeks.com/2013/04/… 扩展这个例子吗
-
您只显示了控制器的GET部分,错误似乎在POST部分...请也显示出来。
-
@SanKrish 感谢您调查此问题。 AddTeam 是一个处理另一个 jsp addTeam.jsp 的类,它提供了添加和删除团队的功能
-
@SergeBallesta 感谢您调查我添加 POST 部分的问题。请查看我编辑的代码
标签: mysql jsp jakarta-ee spring-mvc hibernate-annotations