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

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條評論
主站蜘蛛池模板: 在线播放heyzo北条麻妃 | 日韩不卡中文字幕 | 成人永久免费高清 | 四虎高清在线精品免费观看 | 亚洲综合狠狠99婷婷 | 日本一级~片免费永久 | 一级大毛片| 国外成人免费视频 | 日韩亚洲一区中文字幕在线 | 亚洲天天网综合自拍图片专区 | 日韩久久网 | 999福利视频| 久久国产中文字幕 | 久久激情五月 | 国产香蕉一区二区在线网站 | 久久精品最新免费国产成人 | 国产成人综合亚洲一区 | 九九在线精品视频播放 | 日韩毛片高清在线看 | 成人影院高清在线观看免费网站 | 国产精品中文字幕在线 | 京野结衣免费一区二区 | 伊人久热这里只精品视频 | 深夜在线网址 | 色综合久久天天综合绕观看 | 色综合久久天天影视网 | 极品美女aⅴ高清在线观看 极品美女一级毛片 | 亚洲欧美日韩国产 | 亚洲精品一区二区中文 | 天天插天天操 | 人人揉揉香蕉大免费不卡 | 点击进入不卡毛片免费观看 | 亚洲国产人成在线观看69网站 | jizz人妖| 久久精品一区二区 | 成人久久18免费网址 | 涩涩视频免费看 | 久久国产亚洲精品麻豆 | 四虎在线成人免费网站 | 久久精品免费在线观看 | 在线欧洲成人免费视频 |