当前位置: 首页 > 知识库问答 >
问题:

Spring mvc 3.0:bean类的无效属性bean属性不可读或具有无效的getter方法

孔皓
2023-03-14

在“项目创建”视图中,我需要一个选择框,该框显示所有拥有类似Chef Projet的Rolename的用户

以下是Projet、Usilizateur最重要的摘录:

@Entity
@Table(name="Projet")
public class Projet implements Serializable{

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long idProjet;

    @ManyToMany
        @JoinTable(name="Join_Membre_projet",joinColumns={@JoinColumn(name="idProjet")},inverseJoinColumns={@JoinColumn(name="idUser")})
        private Collection<Utilisateur> myUser;

public Collection<Utilisateur> getMyUser() {
        return myUser;
    }

    public void setMyUser(Collection<Utilisateur> u) {
        this.myUser = u;
    }

用户:

@Entity
@Table(name="Utilisateur")
public class Utilisateur implements Serializable {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
        private Long idUser;
        @ManyToMany
      @JoinTable(name="Join_Membre_projet",joinColumns=                          
{@JoinColumn(name="idProjet")},inverseJoinColumns={@JoinColumn(name="idUser")})
private Collection<Utilisateur> myUser;

当提交表格时,被选中的用户将被分配到项目中。

Projets。jsp:

<tr>
 <f:select path="myUser.idUser"
           multiple="true" 
           items="${myUser}"
           itemValue="idUser"
           itemLabel="nomUser">
  </f:select>
</tr>

管理员控制器:

@Controller
@RequestMapping(value="/directeur")
public class AdminController {
    @Autowired
    private IAdmin directeur;
    @RequestMapping(value="/index")
    public String index(Model model)
    {
        model.addAttribute("Projet",new Projet());
        model.addAttribute("Projets",directeur.getAllProjet());
        model.addAttribute("Chef",directeur.getAllSimpleMembre("Chef Projet"));
        return "Projets";

    }
    @RequestMapping(value="/saveProjet",method = RequestMethod.POST)
    public String saveProjet(@ModelAttribute("Projet") Projet p, @Valid BindingResult result,Model model)
    {


        directeur.ajouterProjet(p);
        model.addAttribute("Projet",new Projet());
        model.addAttribute("Projets",directeur.getAllProjet());
        return "Projets";
    }
}

这是堆栈跟踪:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/Projets.jsp at line 44

41:                 <td><f:errors path="dateFinPrevu" cssClass="errors"/></td>
42:             </tr>
43:             <tr>
44:                 <f:select path="myUser.idUser" multiple="true" items="${myUser}" itemValue="idUser" itemLabel="nomUser">
45:                     
46:                 </f:select>
47:             </tr>   


Stacktrace:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/Projets.jsp at line 44

41:                 <td><f:errors path="dateFinPrevu" cssClass="errors"/></td>
42:             </tr>
43:             <tr>
44:                 <f:select path="myUser.idUser" multiple="true" items="${myUser}" itemValue="idUser" itemLabel="nomUser">
45:                     
46:                 </f:select>
47:             </tr>   


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:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1217)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


cause mère 

org.springframework.beans.NotReadablePropertyException: Invalid property 'myUser.idUser' of bean class [com.gestion.projet.entitiez.Projet]: Bean property 'myUser.idUser' 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:725)
    org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:716)
    org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99)
    org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:229)
    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116)
    org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)
    org.springframework.web.servlet.tags.form.SelectTag.writeTagContent(SelectTag.java:194)
    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    org.apache.jsp.WEB_002dINF.views.Projets_jsp._jspx_meth_f_005fselect_005f0(Projets_jsp.java:599)
    org.apache.jsp.WEB_002dINF.views.Projets_jsp._jspService(Projets_jsp.java:327)
    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:209)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1217)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

共有1个答案

壤驷凯
2023-03-14

好吧,我想说这个例外本身就说明了问题:如果没有合适的getter,SpringMVC将无法将任何字段绑定到您的视图

编辑:在一个无关的主题上,您将实体直接绑定到视图?DTO并没有被高估,但如果它是针对一个小项目,这是可以理解的(我看到项目类的类路径是com.gestion.projet.entitiez.projet,所以我猜您这样做是为了测试目的;)

 类似资料:
  • 我是Spring的新手,我有个例外。 我有一个jsp,有很多选择。它们都工作正常,但有一个显示了这个例外: 我正在以与其他工作正常的人相同的方式实施selct。下面是jsp代码: 这里是控制器: 这里,实体Expediente: 最后是TipoExpedinte实体 我认为这可能发生,因为PharmantePadre属性是同一实体Pharmante的外键,但我不知道如何解决它。。。 要帮忙吗?谢谢

  • 我是新来的Spring靴。我在基于javax的验证上遇到了麻烦。控制器期望从POSTendpoint获得json obj的列表。在JSON请求json数组中,如果或为空,我得到正确的400错误。但是,当或为空时,它会抛出500个带有错误消息的异常: 控制器。JAVA 汽车JAVA Engine.java CollectionValidator。JAVA 验证者Advice.java 请求/响应:U

  • 我收到以下错误“bean类[java.util.ArrayList]的无效属性'username]:bean属性'username'不可读或具有无效的getter方法”。 虽然我有正确的表单bean,名称为username,但是我仍然收到了这个错误,你能帮我解决这个错误吗。。? 我的jsp页面在下面 下面提供了我的控制器

  • 因此,我有一个任务来编写一个简单的注册表路由Web应用程序。使用Spring MVC。所以我有“路线”类,在那里我想保留起点、终点和中间点列表。但是我不明白,如何把值从jsp列表(例如使用jstl)。所以我决定解析一个字符串。 并遵循JSP: 如果有必要,我可以发布控制器代码。我有一个错误: 谁能解释一下我做错了什么?

  • 谁能看看这个错误并帮助我吗?我花了两个小时去找问题,但我没有找到解决办法。列出数据是可行的,但问题是在使用action=“saveCategory添加jsp时。 org.springframework.beans.NotReadablePropertyException:bean类[java.util.ArrayList]的属性“category name”无效:bean属性“category n

  • 现在在用spring框架spring boot version = ' 1 . 5 . 9 . release '做java。但是每次我运行我的网络应用程序时 org.springframework.beans.NotReadable属性异常: bean类的无效属性'id'[java.util.ArrayList]: Bean属性'id'不可读或具有无效的getter方法:getter的返回类型是