亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Spring MVC 復(fù)雜表單分部提交--使用AbstractWiz

系統(tǒng) 2298 0

如果我們的表單有很多的輸入選項(xiàng),如果都放置在一個(gè)頁面上,會(huì)導(dǎo)致頁面過多,如果我們能把這些輸入分散到幾個(gè)頁面上,按向?qū)У姆绞教顚?,在最后一頁上進(jìn)行提交,勢(shì)必會(huì)帶來良好的可操作性,使用Spring MVC 架構(gòu)中的AbstractWizardFormController控制器,可以很輕松的完成以上功能

(1)配置文件:web.xml?

?

<? xml?version="1.0"?encoding="UTF-8" ?>
< web-app? version ="2.4" ?
????xmlns
="http://java.sun.com/xml/ns/j2ee" ?
????xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" ?
????xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee?
????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
??
< context-param >
????
< param-name > contextConfigLocation </ param-name >
????
< param-value > /WEB-INF/train-servlet.xml </ param-value >
??
</ context-param >
??
< servlet >
????
< servlet-name > train </ servlet-name >
????
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
????
< load-on-startup > 0 </ load-on-startup >
??
</ servlet >
??
< servlet-mapping >
?????
< servlet-name > train </ servlet-name >
?????
< url-pattern > *.mvc </ url-pattern >
??
</ servlet-mapping >

???
< listener >
?????
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
???
</ listener >
????
??
< filter >
????
< filter-name > character </ filter-name >
????
< filter-class > Action.CharacterFilter </ filter-class >
??
</ filter >
??
< filter-mapping >
????
< filter-name > character </ filter-name >
????
< url-pattern > /* </ url-pattern >
??
</ filter-mapping >
??
< welcome-file-list >
????
< welcome-file > index.jsp </ welcome-file >
??
</ welcome-file-list >
</ web-app >

?

(2)控制器類

?? 其中successView是最后表單提交成功后的回顯頁面,由spring注入
?????????? cancelView是中途取消提交過程后的返回頁面,由spring注入
?????????? vote為我們表單對(duì)應(yīng)的javabean
???
???????? 繼承了AbstractWizardFormController,所以必須實(shí)現(xiàn)他的abstract mothed---processFinish。也就是說,若果繼承了AbstractWizardFormController,你僅需要實(shí)現(xiàn)這個(gè)方法。當(dāng)所有的頁面表單填寫完將調(diào)用這個(gè)方法。 processCancel方法不是必須實(shí)現(xiàn)的,他是在你填寫某一步表單時(shí)想取消,按取消按鈕時(shí)調(diào)用。

package ?Action;

import ?java.util.Enumeration;

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

import ?model.Vote;

import ?org.springframework.validation.BindException;
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;
????
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?arg0,?HttpServletResponse?arg1,?Object?arg2,?BindException?arg3)? 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);
????}


}

JavaBean:

package ?model;
public ? class ?Vote? ... {
???
private ?String?id;
???
private ?String?name;
???
private ?String?option;
???
private ?String?result;
public ?String?getId()? ... {
????
return ?id;
}

public ? void ?setId(String?id)? ... {
????
this .id? = ?id;
}

public ?String?getName()? ... {
????
return ?name;
}

public ? void ?setName(String?name)? ... {
????
this .name? = ?name;
}

public ?String?getOption()? ... {
????
return ?option;
}

public ? void ?setOption(String?option)? ... {
????
this .option? = ?option;
}

public ?String?getResult()? ... {
????
return ?result;
}

public ? void ?setResult(String?result)? ... {
????
this .result? = ?result;
}
?
}

?

配置文件:

?

< bean? id ="simpleUrlMapping" ?class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
?
< property? name ="mappings" >
???
< props >
?????
< prop? key ="/feedback.mvc" > FeedbackController </ prop >
?
???
</ props >
?
</ property >
</ bean >



<!-- ?使用AbstractWizardFormController控制器? -->
< 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="pages">
????<list>??<!---此處定義表單向?qū)У捻撁媪黜樞颍獓?yán)格執(zhí)行這里配置的順序->
??????<value>formWizard/first</value>
??????<value>formWizard/id</value>
??????<value>formWizard/name</value>
??????<value>formWizard/option</value>
??????<value>formWizard/result</value>
????</list>
??</property>
</bean>


<bean?id="viewResolver"?class="org.springframework.web.servlet.view.InternalResourceViewResolver">
??<property?name="prefix">
????<value>/</value>
??</property>
??<property?name="suffix">
????<value>.jsp</value>
??</property>
</bean>

我們執(zhí)行feedback.mvc時(shí)候,默認(rèn)首先訪問第一順位的頁面first.jsp

first.jsp:

?

<% ... @?page?language = " java " ?contentType = " text/html;?charset=GB18030 "
????pageEncoding
= " GB18030 "
%>
<! 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=GB18030" >
< title > Insert?title?here </ title >
</ head >
< body >
< FORM? action ="feedback.mvc" ?method ="post" >
?
< TABLE >
??
< TBODY >

Spring MVC 復(fù)雜表單分部提交--使用AbstractWizardFormController解決方案


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美乱大交xxxxx在线观看 | 国产成人一级 | 成人啪啪免费看 | 91久久国产精品视频 | 成人人观看的免费毛片 | 99免费视频 | 天天操天天干天天爱 | 中文字幕热久久久久久久 | 精品无人区乱码1区2区3区免费 | 亚洲综合一区二区 | 在线不卡日韩 | 精品91精品91精品国产片 | 欧美xxx视频| 在线亚洲精品国产波多野结衣 | 狠狠色狠狠综合久久 | 亚洲不卡视频 | 亚洲片在线观看 | 国产看色免费 | 欧美毛片 | 日韩欧美黄色大片 | 欧美一级毛片国产一级毛片 | 毛片不卡一区二区三区 | 一级毛片在线播放免费 | 黄色一级网站 | 免费观看黄色a一级录像 | 欧美成人高清 | 色屁屁影视大全 | 免费视频国产 | 热久久久| 99re6在线视频免费精品 | 夜夜操综合 | 欧美成人免费观看久久 | 四虎永久地址 | 婷婷综合五月 | 69精品在线观看 | 欧美a级成人淫片免费看 | 免费看又爽又黄禁片视频1000 | 国产农村一一级特黄毛片 | 中文字幕亚洲综合久久菠萝蜜 | 国产精品视频福利一区二区 | 天天干天天干 |