2012-04-10 41 views
2

我有一個jsp頁面是這樣的:發送成功或錯誤信息,查看與彈簧3個註釋

<form:form action="userRegistration" name="userRegistrationForm" commandName="userRegistration"> 

<form:input path="userName"/> 
<form:input path="houseNo"/> 

</form:form> 

和所有必需的字段。

在控制器我用這樣的:

@RequestMapping(method=RequestMethod.GET) 
public String registration(ModelMap model,HttpSession session) { 
    UserRegistration userRegistration = service.createUserRegistration(); 
    model.addAttribute("userRegistration",userRegistration); 
    return "registrationview"; 
} 


@RequestMapping(method=RequestMethod.POST) 
public String getRegistration(UserRegistration userRegistration, HttpSession session, ModelMap model) { 
    boolean result = validateAndSaveData(userRegistration); 
    if (result){ 

    } 
} 
當用戶提交表單

,它涉及到的職位,然後驗證輸入並保存。 如何向視圖發送成功消息和錯誤消息。現有實施中是否需要進行任何更改?

回答

3
@RequestMapping(method=RequestMethod.POST) 
public String getRegistration(UserRegistration userRegistration, HttpSession session, ModelMap model) { 
    boolean result = validateAndSaveData(userRegistration); 
    if (result){ 
     model.addAttribute("successMsg", "Form successfully submitted"); 
     return "successPage"; 
    } 
    else { 
     model.addAttribute("errorMsg", "Your form submission contains errors."); 
     return "formPage"; 
    } 
} 

我Shagaan同意,你應該考慮使用Spring的內置支持JSR-303驗證,驗證表單。這裏有一些關於如何做到這一點的信息。首先,註釋與JSR-303(javax.validation)註釋您的形式:

public class UserRegistration { 

    @NotNull 
    @Size(max=7) 
    private String name; 
    @Min(0) 
    private int houseNo; 
    ... 
} 

然後標註模型在控制器法 「@Valid」:

@RequestMapping(method=RequestMethod.POST) 
public String getRegistration(@Valid UserRegistration userRegistration, BindingResult result, HttpSession session, ModelMap model) { 
    if (result.hasErrors()){ 
     model.addAttribute("errorMsg", "Your form submission contains errors."); 
     return "formPage"; 
    } 

    model.addAttribute("successMsg", "Form successfully submitted"); 
    return "successPage"; 
} 

Spring的BindingResult自動綁定錯誤你的表單對象,這樣的話在你的JSP,你可以這樣做:

<form:form action="userRegistration" name="userRegistrationForm" commandName="userRegistration"> 

    <form:input path="userName"/> <form:errors path="userName" cssClass="error"/> 
    <form:input path="houseNo"/> <form:errors path="houseNo" cssClass="error"/> 

</form:form> 

使用Spring的驗證,則需要驗證的API(JSR-303規範)和執行(休眠-驗證)在你的類路徑中。請參閱Spring validation docs的第6.7節

+0

這些消息一旦使用就會被刪除嗎? – 2015-07-11 03:11:16

+0

春天是否有類似的成功消息? – 2016-02-18 15:55:08

1

您可以保存請求:model.addAttribute(「message」,「sussess」);