2016-12-17 2 views
0

Es scheint, als ob ich dieses Problem nicht lösen kann, obwohl ich hier einige Fragen und Antworten gelesen habe. Ich benutze Feder-Mvc und versuche, Mitgliederinformationen bearbeiten zu lassen.Spring MVC Weder BindingResult noch einfaches Zielobjekt für Bean-Namen mit ModelAndView und Form-Tag

Dies ist eine Fehlermeldung.

Ich benutze Member.vo und es hat bereits alle Getter und Setter, die dafür benötigt werden.

Dies ist ein Controller. erste ist die für das Erhalten Mitglied Informationen

@RequestMapping(value = "/setting", method = RequestMethod.GET) 
    public String setting(HttpSession httpSession){ 

    String s_id = (String) httpSession.getAttribute("s_id"); 
    ModelAndView mav = new ModelAndView("memberedit"); 

    if(s_id !=null){ 
     Member member = membermapper.memberEdit(s_id); 
     mav.addObject("command", member); } 

return "setting"; } 

Dieses lädt Mitglied der neuen Informationen

@RequestMapping(value = "/membereditadd", method = RequestMethod.POST) 
    public String memberEdit(Model model, HttpSession httpSession){ 
     Member member = new Member(); 
     membermapper.editForm(member); 

     String s_url = (String) httpSession.getAttribute("s_url"); 
     model.addAttribute("command", new Member()); 

     return "redirect:"+s_url; 

    } 

Dies ist setting.jsp

<form action="membereditadd" commandName="command" method="post" name="form"> 

<label for="id">id</label> 
<form:input class="form-styling" type="text" path="id" /> 

<label for="pw">password</label> 
<form:input class="form-styling" type="text" path="pw"/> 

<label for="email">e-mail</label> 
<form:input class="form-styling" type="text" path="email"/> 

     <input type="submit" class="btn-signin" value="submit"> 

    </form> 

Antwort

0

Es gibt hier verschiedene Themen. Beispielsweise erstellen Sie eine ModelAndView im GET-Handler, geben dann aber eine einfache Zeichenfolge zurück. Sie müssen ModelAndView zurückgeben.

Ich habe die Dinge ein wenig aufgeräumt. In der folgenden erwartet Ihre JSP editMember.jsp

GET Handler genannt werden:

/** 
    * Spring MVC Controller. Loads an existing Member, sets it in the Model 
    * and forwards to the edit member page. 
    * 
    */ 
@RequestMapping(value = "/editMember", method = RequestMethod.GET) 
public ModelAndView loadEditMemberForm(HttpSession httpSession){ 

    String s_id = (String) httpSession.getAttribute("s_id"); 
    ModelAndView mav = new ModelAndView("editMember"); 

    if(s_id != null){ 
     Member member = membermapper.memberEdit(s_id); 
     mav.addObject("member", member); 
     } 

    return mav; 
} 

POST Handler:

/** 
    * Spring MVC Controller. Handles form submit. Framework will automatically 
    * bind for fields with path X to Member fields named X assuming corressponding 
    * setter setX() is present. 
    * 
    */ 
@RequestMapping(value = "/editMember", method = RequestMethod.POST) 
public String editMember(ModelAttribte("member") member, HttpSession httpSession, RedirectAttributes ra){ 
    Member member = new Member(); 
    membermapper.editForm(member); 

    String s_url = (String) httpSession.getAttribute("s_url"); 

    //if you are using a redirect 
    //then you need to use RedirectAttributes 
    //this makes the Member available to next view 
    ra.addFlashAttribute("member", member); 

    return "redirect:"+s_url; 
} 

aktualisierter Form. Verwenden Sie 'modelAttribute' anstelle von 'command'.

<form:form modelAttribute="member" method="post"> 

    <label for="id">id</label> 
    <form:input class="form-styling" type="text" path="id" /> 

    <label for="pw">password</label> 
    <form:input class="form-styling" type="text" path="pw"/> 

    <label for="email">e-mail</label> 
    <form:input class="form-styling" type="text" path="email"/> 

    <input type="submit" class="btn-signin" value="submit"> 
</form:form> 
Verwandte Themen