欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用AbstractWizardFormController提交復雜表單

系統 2236 0

使用其它類型的命令控制器,命令對象(POJO JavaBean)只裝載一次,使用向導控制器,用戶沒完成向導頁面中的一步,都會有一個命令對象裝載。使用向導,我們只做一次驗證是不可行的,因為如果你檢查的太早的話,找到的驗證問題可能是由于用戶沒有完成向導而導致的,相反,在完成按鈕按下后檢查就太遲了,因為發現的問題可能跨越了多了頁面,我們應該回退到哪個頁面呢?

根據? http://blog.csdn.net/daryl715/archive/2007/06/11/1647870.aspx 這篇心得的實現,我們進行修改,加入驗證功能

首先編寫JavaBean Vote的驗證單元

?

package ?model;

import ?org.springframework.validation.Errors;
import ?org.springframework.validation.Validator;

public ? class ?FeedBackValidator? implements ?Validator? ... {

????
public ? boolean ?supports(Class?cls)? ... {
????????
return ?cls.equals(Vote. class );
????}


????
public ? void ?validate(Object?object,?Errors?errors)? ... {
????????
????}

????
????
public ? void ?validateName(String?name,Errors?errors) ... {
????????
if (name == null || name.equals( "" )) ... {
????????????errors.rejectValue(
" name " ,? " not?null " , null ,? " name必須輸入 " );
????????}

????}

????
public ? void ?validateOption(String?option,Errors?errors) ... {
????????
if (option == null || option.equals( "" )) ... {
????????????errors.rejectValue(
" option " ,? " not?null " , null ,? " option必須輸入 " );
????????}

????}

????
public ? void ?validateResult(String?result,Errors?errors) ... {
????????
if (result == null || result.equals( "" )) ... {
????????????errors.rejectValue(
" result " ,? " not?null " , null ,? " result必須輸入 " );
????????}

????}

????
public ? void ?validateId(String?id,Errors?errors) ... {
????????
if (id == null || id.equals( "" )) ... {
????????????errors.rejectValue(
" id " ,? " not?null " , null ,? " id必須輸入 " );
????????}

????}


}

?

修改train-servlet.xml,注入validator

?

< bean? id ="FeedbackController" ?class ="Action.FeedBackWizardController" >
??
< property? name ="successView" >< value > formWizard/thankyou </ value > ? </ property >
??
< property? name ="cancelView" >< value > formWizard/first </ value > ? </ property >
??
< property? name ="commandClass" >< value > model.Vote </ value ></ property >
??
< property? name ="validator" >
????
< bean? class ="model.FeedBackValidator" />
??
</ property >
??
< property? name ="pages" >
????
< list >
??????
< value > formWizard/first </ value >
??????
< value > formWizard/id </ value >
??????
< value > formWizard/name </ value >
??????
< value > formWizard/option </ value >
??????
< value > formWizard/result </ value >
????
</ list >
??
</ property >
</ bean >

?

修改頁面,以id.jsp為例

<body>
? <spring:bind path="command.id">
?? <form action="feedback.mvc" method="post">
???? id: <input type="text" name="id" value="<c:out value="${status.value}"/>"/>
????? <c:if test="${status.error}">
????????? <font color="#FF0000">
????????? 錯誤:
?????????? <c:forEach items="${status.errorMessages}" var="error">
??????????????? <c:out value="${error}"/>
?????????? </c:forEach>
????????? </font>
??????? </c:if>
???? <input type="submit" value="下一步" name="_target2" />

???? <input type="submit" value="取消" name="_cancel"/>?
????? <input type="submit" value="完成" name="_finish"/>
?? </form>
?? </spring:bind>
? </body>

?

其他頁面和id.jsp類似

控制器:新覆蓋了validatePage方法,實現驗證功能

?

package ?Action;

import ?java.util.Enumeration;

import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

import ?model.FeedBackValidator;
import ?model.Vote;

import ?org.springframework.validation.BindException;
import ?org.springframework.validation.Errors;
import ?org.springframework.web.servlet.ModelAndView;
import ?org.springframework.web.servlet.mvc.AbstractWizardFormController;
import ?org.springframework.web.util.WebUtils;

public ? class ?FeedBackWizardController? extends ?AbstractWizardFormController? ... {

????
private ?String?successView;
????
private ?String?cancelView;

????
protected ? void ?validatePage(Object?object,?Errors?errors,? int ?page, boolean ?isFinish)? ... {
????????Vote?vote
= (Vote)object;
????????FeedBackValidator?feedBackValidator
= (FeedBackValidator)getValidator();
????????
if (page == 1 ) ... { // 檢查第一頁的id
????????????feedBackValidator.validateId(vote.getId(),?errors);
????????}

????????
if (page == 2 ) ... { // 檢查第二頁的name
????????????feedBackValidator.validateName(vote.getName(),?errors);
????????}

????????
if (page == 3 ) ... { // 檢查第三頁的option
????????????feedBackValidator.validateOption(vote.getOption(),?errors);
????????}

????????
if (page == 4 ) ... { // 檢查第四頁的result
????????????feedBackValidator.validateResult(vote.getResult(),?errors);
????????}

????????
if (isFinish) ... {
????????????
// 表單向導結束
????????????System.out.println( " form?finished " );
????????}

????}


????
public ?String?getCancelView()? ... {
????????
return ?cancelView;
????}


????
public ? void ?setCancelView(String?cancelView)? ... {
????????
this .cancelView? = ?cancelView;
????}


????
public ?String?getSuccessView()? ... {
????????
return ?successView;
????}


????
public ? void ?setSuccessView(String?successView)? ... {
????????
this .successView? = ?successView;
????}


????
protected ?ModelAndView?processCancel(HttpServletRequest?request,?HttpServletResponse?response,?Object?object,?BindException?exception)? throws ?Exception? ... {

???????
return ? new ?ModelAndView( this .getCancelView());
????}

?

????
protected ?ModelAndView?processFinish(HttpServletRequest?request,
????????????HttpServletResponse?response,?Object?object,?BindException?exception)
????????????
throws ?Exception? ... {
????????Vote?vote
= (Vote)object;
????????
????????
return ? new ?ModelAndView( this .getSuccessView(), " vote " ,vote);
????}


}



使用AbstractWizardFormController提交復雜表單的驗證解決方案


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美中文字幕在线观看 | 国产超碰人人做人人爱 | 成人午夜免费在线视频 | 色综合久久88色综合天天 | 特黄aaaaaa久久片 | 黄色羞羞视频在线观看 | 国产自产拍精品视频免费看 | 操操影视 | 亚洲国产精品综合久久 | 在线播放国产精品 | 91免费国产| 亚洲国产精品视频一区 | www.99精品视频在线播放 | 香港三日本三级三级三级 | 欧美日本一 | 久久久99精品免费观看 | 精品国产一区二区三区久久久久久 | 日韩视频观看 | 嗯啊你轻点好深啊hh在线播放 | 玖玖精品在线观看 | 亚洲娇小性xxxx色 | 久久一区二区三区精品 | 人人亚洲 | 欧美激情精品久久久久久变态 | 国产亚洲精品久久久久久一区二区 | 亚洲视频在线网站 | 免费1级片 | 午夜影院在线播放 | 69久久 | 成人国内精品久久久久影 | 九九精品视频在线播放 | 日本成日本片人免费 | 国产成人综合在线观看 | 99中文在线 | 嫩草影院永久入口在线观看 | 色多多成视频人在线观看 | 国产精品久久久久久久久久免费 | 精品伊人久久久99热这里只 | 男女一起www免费高清视频 | 国产免费av在线 | 97色伦图片97综合影院 |