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

Spring MVC 復雜表單分部提交--使用AbstractWiz

系統 1971 0

如果我們的表單有很多的輸入選項,如果都放置在一個頁面上,會導致頁面過多,如果我們能把這些輸入分散到幾個頁面上,按向導的方式填寫,在最后一頁上進行提交,勢必會帶來良好的可操作性,使用Spring MVC 架構中的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為我們表單對應的javabean
???
???????? 繼承了AbstractWizardFormController,所以必須實現他的abstract mothed---processFinish。也就是說,若果繼承了AbstractWizardFormController,你僅需要實現這個方法。當所有的頁面表單填寫完將調用這個方法。 processCancel方法不是必須實現的,他是在你填寫某一步表單時想取消,按取消按鈕時調用。

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>??<!---此處定義表單向導的頁面流順序,要嚴格執行這里配置的順序->
??????<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>

我們執行feedback.mvc時候,默認首先訪問第一順位的頁面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 復雜表單分部提交--使用AbstractWizardFormController解決方案


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费黄色福利 | 亚洲精品久久片久久 | 天天干天天夜 | 高清一区二区 | 精品国产亚洲一区二区三区 | 精品国产呦系列在线看 | 欧美色精品天天在线观看视频 | 亚洲欧美日韩在线一区二区三区 | 国产精品视屏 | 亚洲九九| 国产精品亚洲精品不卡 | 亚洲国产精品自产拍在线播放 | 波多野结衣久久一区二区 | 青草国产 | 一级做受视频免费是看美女 | 欧美一级精品高清在线观看 | 国内精品视频九九九九 | 九九这里只有精品 | 四虎影视在线影院www | 国产系列在线播放 | 四虎影视www | 毛片基地免费视频a | 免费黄色一级大片 | 国产农村妇女毛片精品久久 | 亚洲五月综合网色九月色 | 在线综合视频 | www.天天操| 看真人视频一一级毛片 | 婷婷综合在线观看丁香 | 国产夫妻久久 | 精品一久久香蕉国产线看观看下 | 久久人人澡 | 久久精品久久精品久久 | 日日摸夜夜添夜夜添久久 | 欧美成人欧美激情欧美风情 | 91国内在线国内在线播放 | 毛片啪啪视频 | 精品一区二区三区视频在线观看免 | 一级毛片私人影院老司机 | 4虎最新| 久久草在线视频观看 |