OMG,到底在尋找什么..................
          (構(gòu)造一個(gè)完美的J2EE系統(tǒng)所需要的完整知識(shí)體系)
          posts - 198,  comments - 37,  trackbacks - 0
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-21 15:56:03?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          spring嘟嘟 寫道:
          xiaoyu 寫道:
          我的項(xiàng)目就是用spring mvc的..不好用呀......以前討論過.

          覺得webwork2不錯(cuò)...

          就單單spring mvc的表單數(shù)據(jù)綁定就問題很多.

          再就是的驗(yàn)證.

          綁定有什么問題?


          驗(yàn)證就更沒有問題了.. 就寫寫配置文件而已.


          用用就知道了...
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-21 19:43:54?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          xiaoyu 寫道:
          spring嘟嘟 寫道:
          xiaoyu 寫道:
          我的項(xiàng)目就是用spring mvc的..不好用呀......以前討論過.

          覺得webwork2不錯(cuò)...

          就單單spring mvc的表單數(shù)據(jù)綁定就問題很多.

          再就是的驗(yàn)證.

          綁定有什么問題?


          驗(yàn)證就更沒有問題了.. 就寫寫配置文件而已.


          用用就知道了...


          都做了5個(gè)項(xiàng)目....

          不知道要怎么才算用過?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-21 22:43:02?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          喔。。強(qiáng)。。。

          問一下,首先對(duì)基本類型的綁定問題(非string),當(dāng)然form表單元素的值為空時(shí),怎么解決?

          2.深層綁定是怎么解決(屬性.屬性.屬性)。

          3.對(duì)于Data(或者Calendar)類型(其實(shí)這個(gè)是比較典型的)的解釋怎么解決,特別是當(dāng)不同的Data類型屬性不同的格式解釋怎么解決?

          4.對(duì)于session里的值的綁定,怎么解決?

          5.對(duì)于上傳文件,怎么解決?(其實(shí)這個(gè)我看過解決方法,不過找不到了,不好意思)(文件上傳一般經(jīng)常用的有兩種,一種是把流存到數(shù)據(jù)庫,另一種是直接放到服務(wù)器的某個(gè)文件夾)

          6. 對(duì)數(shù)組(或List)的綁定,例如:表單元素名稱elements[0].id,elements[1].id.

          OK,希望spring dudu 能把解決方案寫出來,謝謝了。。其實(shí)說spring mvc不好,是因?yàn)槲覍?duì)spring mvc不太了解。起碼也只是用在了一個(gè)項(xiàng)目上,覺得問題蠻多的,不過很多問題應(yīng)該是我不了解的原因。。希望spring dudu 幫-幫忙。謝謝
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          moxie
          Sybase EAServer
          Sybase EAServer


          性別:性別:男


          加入時(shí)間: 2003/09/16
          文章: 96

          離線

          文章 時(shí)間: 2005-4-22 18:27:44?? ?標(biāo)題: Re: 討論一下spring自己的MVC框架 引用回復(fù) 將這個(gè)帖子加入我的Blog

          baichenhong 寫道:
          這里好像沒人提到spring自帶的MVC框架,我最近研究了一下,感覺很不錯(cuò)。
          spring支持多種類型的view,包括jsp、xslt、velocity、pdf、excel等技術(shù)。

          spring提供多種控制器,其中有簡單的對(duì)應(yīng)一個(gè)請(qǐng)求的Controller,對(duì)應(yīng)多個(gè)請(qǐng)求的MultiActionController,支持form表單和錯(cuò)誤綁定功能的SimpleFormController等等,支持url路徑重寫(你可以以各種后綴名來命名)。

          個(gè)人感覺非常靈活,有多種控制器可用,struts太死板難用,tapstry復(fù)雜難度高

          另外從中學(xué)到了很多東西,jsp的作用就是實(shí)現(xiàn)視圖,試圖的功能其實(shí)很單一的,用來展現(xiàn)數(shù)據(jù)。

          推薦大家研究研究,有什么優(yōu)缺點(diǎn)大家討論一下


          為什么不試試WebWork2呢?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 瀏覽發(fā)表者的主頁
          winterwolf
          Weblogic Cluster
          Weblogic Cluster





          加入時(shí)間: 2005/01/01
          文章: 360

          離線

          文章 時(shí)間: 2005-4-23 10:42:17?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          表單的驗(yàn)證和struts的沒什么區(qū)別吧 ? 是個(gè)通用的驗(yàn)證工具在哪里都可以借用.
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          pikachu
          Oracle9iAS
          Oracle9iAS





          加入時(shí)間: 2004/05/08
          文章: 161

          離線

          文章 時(shí)間: 2005-4-23 20:50:15?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          引用:
          問一下,首先對(duì)基本類型的綁定問題(非string),當(dāng)然form表單元素的值為空時(shí),怎么解決?

          在controller中
          java代碼:?

          protected void initBinder(HttpServletRequest request,
          ? ? ? ? ? ? ? ? ? ? ? ? ServletRequestDataBinder binder)throwsException{
          ? ? ? ? ? ? ? ? binder.registerCustomEditor(Integer.class,new CustomNumberEditor(Integer.class,true));
          ? ? ? ? }


          或者在spring的配置中配置CustomEditorConfigurer

          引用:
          2.深層綁定是怎么解決(屬性.屬性.屬性)。

          把你的input命名為 xxx.yyy
          command中寫上
          getXxx .它返回的對(duì)象有setYyy方法就ok了


          引用:
          3.對(duì)于Data(或者Calendar)類型(其實(shí)這個(gè)是比較典型的)的解釋怎么解決,特別是當(dāng)不同的Data類型屬性不同的格式解釋怎么解決?

          原理同第一個(gè),不過換成CustomDateEditor,這個(gè)構(gòu)造傳入一個(gè)DateFormat對(duì)象
          引用:
          4.對(duì)于session里的值的綁定,怎么解決?

          controllor有sessionForm屬性。不過這里有個(gè)陷阱。在spring的AbstractCommandFormController中有g(shù)etCommand方法。如果form被設(shè)置成sessionForm,那么這個(gè)方法會(huì)從session中獲取command,但是馬上就把command從session中刪了
          java代碼:?

          protected final Object getCommand(HttpServletRequest request)throwsException{
          ? ? ? ? ? ? ? ? if(!isSessionForm()){
          ? ? ? ? ? ? ? ? ? ? ? ? return formBackingObject(request);
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? HttpSession session = request.getSession(false);
          ? ? ? ? ? ? ? ? if(session == null){
          ? ? ? ? ? ? ? ? ? ? ? ? throw new ServletException("Must have session when trying to bind (in session-form mode)");
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? String formAttrName = getFormSessionAttributeName(request);
          ? ? ? ? ? ? ? ? Object sessionFormObject = session.getAttribute(formAttrName);
          ? ? ? ? ? ? ? ? if(sessionFormObject == null){
          ? ? ? ? ? ? ? ? ? ? ? ? throw new ServletException("Form object not found in session (in session-form mode)");
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? session.removeAttribute(formAttrName);
          ? ? ? ? ? ? ? ? return sessionFormObject;
          ? ? ? ? }



          所以默認(rèn)情況下,設(shè)置成sessionForm的流程是這樣的

          客戶get某個(gè)url
          因?yàn)槭莋et方式,spring判斷不是一個(gè)submit,調(diào)用showNewForm,同時(shí)創(chuàng)建一個(gè)Command丟到session中
          顯示formView
          客戶在form中輸入一些內(nèi)容 submit
          form被post,spring判斷是submit而且是sessionForm。調(diào)用getCommand,getCommand把command從sessionForm里刪掉
          spring調(diào)用processFormSubmission然后一直調(diào)用到onSubmit,成功的話顯示successView。

          所以如果command要一直保存在session中的話,需要每次onSubmit中重新把command丟到session中或者索性重寫processFormSubmission。后一種方法可以參考AbstractWizardForm的做法
          引用:
          5.對(duì)于上傳文件,怎么解決?(其實(shí)這個(gè)我看過解決方法,不過找不到了,不好意思)(文件上傳一般經(jīng)常用的有兩種,一種是把流存到數(shù)據(jù)庫,另一種是直接放到服務(wù)器的某個(gè)文件夾)

          spring沒有現(xiàn)成的一站式解決方案,不過可以用org.springframework.web.multipart 下的輔助類
          這里是Srping api中的例子
          java代碼:?

          ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response){
          ? ?MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
          ? ?MultipartFile multipartFile = multipartRequest.getFile("image");
          ? ?...
          }


          你也可以在CommandForm中注冊(cè)一個(gè)ByteArrayMultipartFileEditor 或者StringMultipartFileEditor
          至于是要存文件夾還是存數(shù)據(jù)庫,spring幫不了你,不過拿到所有的byte后隨便做什么都應(yīng)該不是什么很困難的事了
          引用:
          6. 對(duì)數(shù)組(或List)的綁定,例如:表單元素名稱elements[0].id,elements[1].id.

          spring支持這種形式的綁定.比如command這樣設(shè)計(jì)
          java代碼:?

          class Command{
          ? publicList getElements(){//}
          }


          當(dāng)然,這個(gè)要求List或者數(shù)組中有足夠的元素.
          我見過另一種做法,是從struts上學(xué)來的,自定義一個(gè)List實(shí)現(xiàn),重寫get方法.


          引用:
          OK,希望spring dudu 能把解決方案寫出來,謝謝了。。其實(shí)說spring mvc不好,是因?yàn)槲覍?duì)spring mvc不太了解。起碼也只是用在了一個(gè)項(xiàng)目上,覺得問題蠻多的,不過很多問題應(yīng)該是我不了解的原因。。希望spring dudu 幫-幫忙。謝謝

          這是robbin的大忌諱,點(diǎn)名貼是要?jiǎng)h的 Shocked
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-23 22:46:47?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          8好意思,去上海兩天剛回來。

          已經(jīng)有人回答了。

          不過我想問問啥需求要放在Session里面?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:天平宮
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-23 23:19:50?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          首先多謝回答(真是十分多謝,希望加精華,嘻)

          可見,spring的mvc是多么的復(fù)雜,還沒有結(jié)束復(fù)雜性呢,請(qǐng)耐心,我再問問。。。嘻


          引用:
          引用:
          問一下,首先對(duì)基本類型的綁定問題(非string),當(dāng)然form表單元素的值為空時(shí),怎么解決?

          在controller中
          java代碼:?

          protected void initBinder(HttpServletRequest request,
          ? ? ? ? ? ? ? ? ? ? ? ? ServletRequestDataBinder binder)throwsException{
          ? ? ? ? ? ? ? ? binder.registerCustomEditor(Integer.class,new CustomNumberEditor(Integer.class,true));
          ? ? ? ? }


          或者在spring的配置中配置CustomEditorConfigurer


          這樣設(shè)置后,是不是int取到的默認(rèn)值是0,Integer是null?


          引用:

          引用:
          2.深層綁定是怎么解決(屬性.屬性.屬性)。

          把你的input命名為 xxx.yyy
          command中寫上
          getXxx .它返回的對(duì)象有setYyy方法就ok了


          如果這個(gè)屬性是空的(指xxx這個(gè)屬性),就會(huì)出現(xiàn)空指針異常。。請(qǐng)繼續(xù)



          引用:
          引用:
          3.對(duì)于Data(或者Calendar)類型(其實(shí)這個(gè)是比較典型的)的解釋怎么解決,特別是當(dāng)不同的Data類型屬性不同的格式解釋怎么解決?

          原理同第一個(gè),不過換成CustomDateEditor,這個(gè)構(gòu)造傳入一個(gè)DateFormat對(duì)象


          沒有解決我的問題,我是指不同的屬性要用不同的格式,例如,我的工作日的格式是yyyy-MM-dd(精確到天),但我的操作時(shí)間,要精確到分。

          還有對(duì)Calendar是不是也可以用你上面的方法呢?
          引用:


          引用:
          4.對(duì)于session里的值的綁定,怎么解決?

          controllor有sessionForm屬性。不過這里有個(gè)陷阱。在spring的AbstractCommandFormController中有g(shù)etCommand方法。如果form被設(shè)置成sessionForm,那么這個(gè)方法會(huì)從session中獲取command,但是馬上就把command從session中刪了
          java代碼:?

          protected final Object getCommand(HttpServletRequest request)throwsException{
          ? ? ? ? ? ? ? ? if(!isSessionForm()){
          ? ? ? ? ? ? ? ? ? ? ? ? return formBackingObject(request);
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? HttpSession session = request.getSession(false);
          ? ? ? ? ? ? ? ? if(session == null){
          ? ? ? ? ? ? ? ? ? ? ? ? throw new ServletException("Must have session when trying to bind (in session-form mode)");
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? String formAttrName = getFormSessionAttributeName(request);
          ? ? ? ? ? ? ? ? Object sessionFormObject = session.getAttribute(formAttrName);
          ? ? ? ? ? ? ? ? if(sessionFormObject == null){
          ? ? ? ? ? ? ? ? ? ? ? ? throw new ServletException("Form object not found in session (in session-form mode)");
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? session.removeAttribute(formAttrName);
          ? ? ? ? ? ? ? ? return sessionFormObject;
          ? ? ? ? }



          所以默認(rèn)情況下,設(shè)置成sessionForm的流程是這樣的

          客戶get某個(gè)url
          因?yàn)槭莋et方式,spring判斷不是一個(gè)submit,調(diào)用showNewForm,同時(shí)創(chuàng)建一個(gè)Command丟到session中
          顯示formView
          客戶在form中輸入一些內(nèi)容 submit
          form被post,spring判斷是submit而且是sessionForm。調(diào)用getCommand,getCommand把command從sessionForm里刪掉
          spring調(diào)用processFormSubmission然后一直調(diào)用到onSubmit,成功的話顯示successView。

          所以如果command要一直保存在session中的話,需要每次onSubmit中重新把command丟到session中或者索性重寫processFormSubmission。后一種方法可以參考AbstractWizardForm的做法


          我的要求要這么復(fù)雜完成呀,我只希望從session里獲得我需要的屬性值而罷了,例如,我要獲得User對(duì)象(操作者),然后自動(dòng)綁定到我的VO里。



          引用:
          引用:
          5.對(duì)于上傳文件,怎么解決?(其實(shí)這個(gè)我看過解決方法,不過找不到了,不好意思)(文件上傳一般經(jīng)常用的有兩種,一種是把流存到數(shù)據(jù)庫,另一種是直接放到服務(wù)器的某個(gè)文件夾)

          spring沒有現(xiàn)成的一站式解決方案,不過可以用org.springframework.web.multipart 下的輔助類
          這里是Srping api中的例子
          java代碼:?

          ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response){
          ? ?MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
          ? ?MultipartFile multipartFile = multipartRequest.getFile("image");
          ? ?...
          }


          你也可以在CommandForm中注冊(cè)一個(gè)ByteArrayMultipartFileEditor 或者StringMultipartFileEditor
          至于是要存文件夾還是存數(shù)據(jù)庫,spring幫不了你,不過拿到所有的byte后隨便做什么都應(yīng)該不是什么很困難的事了


          果然。。。。。。。。唉。。。。。。。


          引用:

          引用:
          6. 對(duì)數(shù)組(或List)的綁定,例如:表單元素名稱elements[0].id,elements[1].id.

          spring支持這種形式的綁定.比如command這樣設(shè)計(jì)
          java代碼:?

          class Command{
          ? publicList getElements(){//}
          }


          當(dāng)然,這個(gè)要求List或者數(shù)組中有足夠的元素.
          我見過另一種做法,是從struts上學(xué)來的,自定義一個(gè)List實(shí)現(xiàn),重寫get方法.


          你是指我數(shù)組或List不能為空嗎?getElements()返回的不能是null?如果是null怎么辦?

          引用:

          引用:
          OK,希望spring dudu 能把解決方案寫出來,謝謝了。。其實(shí)說spring mvc不好,是因?yàn)槲覍?duì)spring mvc不太了解。起碼也只是用在了一個(gè)項(xiàng)目上,覺得問題蠻多的,不過很多問題應(yīng)該是我不了解的原因。。希望spring dudu 幫-幫忙。謝謝

          這是robbin的大忌諱,點(diǎn)名貼是要?jiǎng)h的 Shocked


          呵 可。。在這里認(rèn)個(gè)錯(cuò),對(duì)不起,因?yàn)橛X得javaeye沒有幾個(gè)去研究這個(gè)復(fù)雜的mvc所以就,再說spring dudu 用了五個(gè)項(xiàng)目,所以希望他能給出一起經(jīng)驗(yàn),對(duì)學(xué)習(xí)和推廣這個(gè)mvc有很大的作用。

          謝謝。。。。

          to spring dudu:沒有關(guān)系,嘻嘻。。。。
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          pikachu
          Oracle9iAS
          Oracle9iAS





          加入時(shí)間: 2004/05/08
          文章: 161

          離線

          文章 時(shí)間: 2005-4-24 12:22:46?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          引用:
          這樣設(shè)置后,是不是int取到的默認(rèn)值是0,Integer是null?

          不好意思,昨天的回答想當(dāng)然而。不全對(duì)。
          正確的答案是,如果要綁定到int基本類型,需要自定義一個(gè)IntEditor
          java代碼:?

          public class CustIntEditor extends IntEditor{
          ? ? ? ? ? ? ? ?
          ? ? ? ? ? ? ? ? ? ? ? ? /* (non-Javadoc)
          ? ? ? ? ? ? ? ? * @see java.beans.PropertyEditor#setAsText(java.lang.String)
          ? ? ? ? ? ? ? ? */

          ? ? ? ? ? ? ? ? publicvoid setAsText(String text)throwsIllegalArgumentException{
          ? ? ? ? ? ? ? ? ? ? ? ? if(text==null||text.equals("")){
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? super.setAsText("0");
          ? ? ? ? ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? ? ? ? ? else{
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? super.setAsText(text);
          ? ? ? ? ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? }
          }


          然后用Integer.TYPE進(jìn)行注冊(cè)。
          java代碼:?

          binder.registerCustomEditor(Integer.TYPE,new CustIntEditor());


          Integer類型的回答是對(duì)的
          btw:要是Spring用Ognl綁定估計(jì)也不會(huì)象現(xiàn)在那么麻煩了。


          引用:
          如果這個(gè)屬性是空的(指xxx這個(gè)屬性),就會(huì)出現(xiàn)空指針異常。。請(qǐng)繼續(xù)[/b]

          我想即使是webwork或者tapestry等綁定作的比較好的也不能很好的滿足你的要求。本質(zhì)上,不管用PropertyEditor還是Ognl,任何深層綁定最終都是
          a.getB().getC().setD(dValue);
          至于當(dāng)中g(shù)et鏈能否正常,全靠自己把握了。考慮到繼承和派生,外圍框架更不可能知道你的get鏈中返回的是什么類型,也不可能幫你創(chuàng)一個(gè)中間的對(duì)象并且set。
          一般的做法是寫上一段guard
          java代碼:?

          public B getB(){
          ? if(this.b==null){
          ? ? ?this.b=new BImpl(); //guard code here
          ? }
          return this.b;
          }



          引用:

          沒有解決我的問題,我是指不同的屬性要用不同的格式,例如,我的工作日的格式是yyyy-MM-dd(精確到天),但我的操作時(shí)間,要精確到分。
          還有對(duì)Calendar是不是也可以用你上面的方法呢?

          說實(shí)話我覺得這種要求比較過分 Twisted Evil
          解決方法取決于你的實(shí)際情況
          如果你對(duì)日期的不同精度要求是在兩個(gè)controllor中那很好辦,每個(gè)controllor注冊(cè)自己所需要的日期型的CustomDateEditor。構(gòu)造時(shí)傳入不同pattern的format。
          如果是在同一個(gè)controllor中,那就比較惱火了。因?yàn)閷⒁粋€(gè)高精度的值向低精度格式綁定會(huì)丟失精度,而低精度的值向高精度格式綁定會(huì)出錯(cuò)。用哪個(gè)都不滿意。
          現(xiàn)在我想到的方法是采用最高精度的日期格式。低精度的屬性在綁定前把值加0,把自己弄成高精度的樣子。不過因?yàn)閟pring自帶的formControllor已經(jīng)把很多寫死了,只能在頁面上動(dòng)用script了。
          還有個(gè)辦法是自己寫一個(gè)Date的PropertyEditor。
          Calendar沒有默認(rèn)的PropertyEditor。不過可以參考spring中CustomDateEditor的做法,把string轉(zhuǎn)成Date然后再從Date轉(zhuǎn)成Calendar。

          引用:

          我的要求要這么復(fù)雜完成呀,我只希望從session里獲得我需要的屬性值而罷了,例如,我要獲得User對(duì)象(操作者),然后自動(dòng)綁定到我的VO里。

          spring中bind完全是bean的機(jī)制,和session無關(guān)。一般只能在controllor中手工從session獲得再手工綁定到VO里。
          btw,我覺得這個(gè)不是也不應(yīng)該是bind的用途。如果在Spring里,你可以在Controllor中這樣寫
          java代碼:?

          protected Object formBackingObject(HttpServletRequest request)
          ? ? ? ? ? ? ? ? ? ? ? ? throwsException{
          ? ? ? ? ? ? ? ? Object cmd=super.formBackingObject(request);
          ? ? ? ? ? ? ? ? if(cmd instanceof UserSettable){
          ? ? ? ? ? ? ? ? ? ? ? ? ((UserSettable)cmd).setUser(request.getSession().getAttribute("user"));
          ? ? ? ? ? ? ? ? }
          //? ? ? ? ? ? ? ? 或者用beanWrapper調(diào)用reflect
          //? ? ? ? ? ? ? ? BeanWrapperImpl bw=new BeanWrapperImpl(cmd.getClass());
          //? ? ? ? ? ? ? ? bw.setWrappedInstance(cmd)
          //? ? ? ? ? ? ? ? bw.setPropertyValue("user",request.getSession().getAttribute("user"));
          ? ? ? ? ? ? ? ? return cmd;
          ? ? ? ? }






          引用:
          果然。。。。。。。。唉。。。。。。。

          Very Happy


          引用:
          你是指我數(shù)組或List不能為空嗎?getElements()返回的不能是null?如果是null怎么辦?

          首先不能為空,其次list和數(shù)組的長度要足夠,最后element要是正確的類型
          比如
          cmd.elements[1].id=3;
          那最后調(diào)用樣子的必然是
          cmd.getElements().get(1).setId(3);而且要保證這條鏈不能錯(cuò)
          同樣模仿上面guard,自定義一個(gè)list是不錯(cuò)的做法,比如
          java代碼:?

          class UserList extendsArrayList<User> {

          ? ? ? ? public User get(int index){
          ? ? ? ? ? ? ? ? if(size()<index+1){
          ? ? ? ? ? ? ? ? ? ? ? ? int s=size();
          ? ? ? ? ? ? ? ? ? ? ? ? for(int i=s;i<=index-s;++i){
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? add(i,new User());
          ? ? ? ? ? ? ? ? ? ? ? ? }}
          ? ? ? ? ? ? ? ? return super.get(index);
          ? ? ? ? }
          ? ? ? ? }





          引用:
          呵 可。。在這里認(rèn)個(gè)錯(cuò),對(duì)不起,因?yàn)橛X得javaeye沒有幾個(gè)去研究這個(gè)復(fù)雜的mvc所以就,再說spring dudu 用了五個(gè)項(xiàng)目,所以希望他能給出一起經(jīng)驗(yàn),對(duì)學(xué)習(xí)和推廣這個(gè)mvc有很大的作用。

          謝謝。。。。

          to spring dudu:沒有關(guān)系,嘻嘻。。。。


          我比較另類,第一個(gè)看的mvc就是spring,因?yàn)閺娜ツ晗掳肽瓴砰_始接觸的java,所以struts什么的都沒好好看 Embarassed
          如果只是簡單的應(yīng)用,spring mvc功能就足夠了。如果應(yīng)用中有特殊點(diǎn)就需要去弄一些比較煩人的東西。
          spring的開發(fā)理念和其他常見的項(xiàng)目有很大的區(qū)別。它搭好了一個(gè)框子,提供很多擴(kuò)展口。但是提供的最后成品很少。除了ioc,mvc和transcation部分,其他的基本上都是構(gòu)建在別人的項(xiàng)目上的。而ioc中的beanwrapper又使用了propertyEditor,這個(gè)靈活度極其高。mvc部分也很松散,留下很多擴(kuò)展的空間,可能這就是它自稱的plugable的原因之一吧。最終的結(jié)果是spring確實(shí)很靈活,也有足夠的擴(kuò)展點(diǎn)。但是為了完成擴(kuò)展又需要看一些非spring的東西。

          不過只要有足夠時(shí)間,看spring代碼會(huì)學(xué)到很多東西的,我倒是挺喜歡的 Laughing
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23

          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-24 14:28:44?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          這個(gè)星期最開心的事就是這個(gè)了.真是謝謝.太感謝了.

          看來我對(duì)mvc的了解沒有太多的出入,現(xiàn)在只等spring dudu的見解了。

          這就是spring的綁定問題(spring dudu先生請(qǐng)看)。

          我是自已重寫了formData綁定這部分,如果get是一個(gè)空對(duì)象,我就會(huì)建立這個(gè)對(duì)象(這個(gè)對(duì)象必須要有一個(gè)沒參的構(gòu)造子),并且set。怎么知道這個(gè)對(duì)象的類型,很簡單,其實(shí)PropertyEditor能夠獲得返回類型(return Type),注意這個(gè)對(duì)象必須是可以構(gòu)造的class,考慮到PO,所以屬性很少可能會(huì)是interface和abstract class(集合類除外)。所以對(duì)數(shù)組一樣可以,就算是空對(duì)象,也可以建立數(shù)組,并且建立數(shù)組元素,但對(duì)于List就沒有很好的辦法,因?yàn)闆]有返回類型,除非用元數(shù)據(jù)(覺得這種方法最沒有侵入),或者建立一種自己的格式(表單字段名的約定),然后進(jìn)行解釋。當(dāng)然對(duì)于基本類型是可以很好地進(jìn)行解釋。

          有一個(gè)朋友說可以在SimpleFormController的formBackingObject(request); 這個(gè)方法里設(shè)置你需要的get對(duì)象。

          對(duì)于自定義的屬性進(jìn)行不同的解釋,一是采用webwork2的做法,在類的目錄下同時(shí)有一個(gè)propreties文件,里面指定要用哪種方法。還有一種是用元數(shù)據(jù),這個(gè)就是沒有其它的配置文件。但卻不能隨便改變。

          可以采用webwork2的做法,所有request,servletContext,session里的值都放到一個(gè)context里面去,但優(yōu)先級(jí),我就不太清楚如何才好。

          btw:如果我要獲得servletContext里面的值,不知道在spring的controller怎么獲得呢?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          pikachu
          Oracle9iAS
          Oracle9iAS





          加入時(shí)間: 2004/05/08
          文章: 161

          離線

          文章 時(shí)間: 2005-4-24 16:42:34?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          xiaoyu 寫道:
          這個(gè)星期最開心的事就是這個(gè)了.真是謝謝.太感謝了.

          看來我對(duì)mvc的了解沒有太多的出入,現(xiàn)在只等spring dudu的見解了。

          這就是spring的綁定問題(spring dudu先生請(qǐng)看)。

          我是自已重寫了formData綁定這部分,如果get是一個(gè)空對(duì)象,我就會(huì)建立這個(gè)對(duì)象(這個(gè)對(duì)象必須要有一個(gè)沒參的構(gòu)造子),并且set。怎么知道這個(gè)對(duì)象的類型,很簡單,其實(shí)PropertyEditor能夠獲得返回類型(return Type),注意這個(gè)對(duì)象必須是可以構(gòu)造的class,考慮到PO,所以屬性很少可能會(huì)是interface和abstract class(集合類除外)。所以對(duì)數(shù)組一樣可以,就算是空對(duì)象,也可以建立數(shù)組,并且建立數(shù)組元素,但對(duì)于List就沒有很好的辦法,因?yàn)闆]有返回類型,除非用元數(shù)據(jù)(覺得這種方法最沒有侵入),或者建立一種自己的格式(表單字段名的約定),然后進(jìn)行解釋。當(dāng)然對(duì)于基本類型是可以很好地進(jìn)行解釋。

          有一個(gè)朋友說可以在SimpleFormController的formBackingObject(request); 這個(gè)方法里設(shè)置你需要的get對(duì)象。

          對(duì)于自定義的屬性進(jìn)行不同的解釋,一是采用webwork2的做法,在類的目錄下同時(shí)有一個(gè)propreties文件,里面指定要用哪種方法。還有一種是用元數(shù)據(jù),這個(gè)就是沒有其它的配置文件。但卻不能隨便改變。

          可以采用webwork2的做法,所有request,servletContext,session里的值都放到一個(gè)context里面去,但優(yōu)先級(jí),我就不太清楚如何才好。

          btw:如果我要獲得servletContext里面的值,不知道在spring的controller怎么獲得呢?


          對(duì)于自定義屬性,要么外部配置,要么用些高級(jí)技術(shù) Laughing 比如jdk1.5的增加的getTypeParameters()
          formBackingObject確實(shí)是formControllor中獲取command的方法。如果你沒有重寫formBackingObject,spring的默認(rèn)實(shí)現(xiàn)使用reflect返回的。
          在controllor中可以用onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) 。有了request,我們的生活就會(huì)非常美好!! Very Happy
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23

          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-24 18:21:21?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          但有request卻是那么的難測(cè)試。。唉。。。。
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-24 22:05:39?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          雖然Spring的Web測(cè)試有他自己的Mock

          不過我不會(huì)對(duì)Action這塊做測(cè)試的,簡直是浪費(fèi)時(shí)間。
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-24 22:09:40?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          這就是spring的綁定問題(spring dudu先生請(qǐng)看)。

          我是自已重寫了formData綁定這部分,如果get是一個(gè)空對(duì)象,我就會(huì)建立這個(gè)對(duì)象(這個(gè)對(duì)象必須要有一個(gè)沒參的構(gòu)造子),并且set。怎么知道這個(gè)對(duì)象的類型,很簡單,其實(shí)PropertyEditor能夠獲得返回類型(return Type),注意這個(gè)對(duì)象必須是可以構(gòu)造的class,考慮到PO,所以屬性很少可能會(huì)是interface和abstract class(集合類除外)。所以對(duì)數(shù)組一樣可以,就算是空對(duì)象,也可以建立數(shù)組,并且建立數(shù)組元素,但對(duì)于List就沒有很好的辦法,因?yàn)闆]有返回類型,除非用元數(shù)據(jù)(覺得這種方法最沒有侵入),或者建立一種自己的格式(表單字段名的約定),然后進(jìn)行解釋。當(dāng)然對(duì)于基本類型是可以很好地進(jìn)行解釋。


          沒看明白,你這段話是在說什么問題。。。

          能解釋一下嗎?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:天平宮
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-24 22:51:27?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          呵呵。。其實(shí)沒有什么。。我只是說了我的解決方案(因?yàn)槲沂侵貙懥薴ormData綁定部分)。

          講到底spring 的mvc是個(gè)復(fù)雜的MVC。

          而且綁定的問題就是我上面提出來的。

          不是嗎?還不知道spring dudu的解決方案是不是與pikachu一樣。

          對(duì)于spring mvc如果獲得context里的值,我還不是很清楚。。
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-25 09:04:57?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          前面的項(xiàng)目和他差不多.

          現(xiàn)在改用xmlhttp做了,所以就沒用spring的bind了.

          嘿嘿,現(xiàn)在只要寫配置文件就好
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-25 17:58:27?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          再講一個(gè)spring mvc的問題。

          如果一個(gè)表單需要多個(gè)PO(VO),怎么辦?難道除了只寫一個(gè)包函的VO就沒有其它的方法了嗎?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-25 19:29:35?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          xiaoyu 寫道:
          再講一個(gè)spring mvc的問題。

          如果一個(gè)表單需要多個(gè)PO(VO),怎么辦?難道除了只寫一個(gè)包函的VO就沒有其它的方法了嗎?

          是的

          我沒找到...
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線

          文章 時(shí)間: 2005-4-27 17:53:52?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          [quote="xiaoyu"]再講一個(gè)spring mvc的問題。

          如果一個(gè)表單需要多個(gè)PO(VO),怎么辦?難道除了只寫一個(gè)包函的VO就沒有其它的方法了嗎?
          [/quote]



          多個(gè)PO?formBackingObject只能返回一個(gè)PO(VO),如果要返回多個(gè)東東,使用 referenceData返回的是一個(gè)Map,在Map里面你愛裝傻就裝啥。例如一個(gè)Map里面裝上一個(gè)List或Map,然后這個(gè)List或Map再裝其它的東西,你的需求是不是這樣子的呢?
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線




          文章 時(shí)間: 2005-4-27 18:04:09?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          checkbox綁定到boolean的問題我還沒解決,CustomBooleanEditor它只能綁定到Boolean,而不是boolean,只能使用request.getParameter來取得checkbox的值。
          -------------------------
          另外,Spring的可配置客戶端驗(yàn)證問題,spring借用struts的驗(yàn)證機(jī)制,我用過一陣子,每更改一下配置文件,就得重新啟動(dòng)服務(wù)器,感覺不是很好用。我在http://cosoft.org.cn/projects/jsvalidation找到一個(gè)js驗(yàn)證framework,這是一個(gè)很漂亮的驗(yàn)證framework(只是國產(chǎn)的而已,經(jīng)理不是很喜歡),不用重新啟動(dòng)服務(wù)器,很好用!
          上面還介紹了生成該驗(yàn)證的xdoclet,但我找了老半天都找不到DocletTask的jar包,無奈,只好自己寫了一個(gè)xdoclet--嘿嘿,只是編寫xdoclet的模板文件而已,我把它上傳上來,大家喜歡的話就download看一下,生成javascript的xdoclet可以用了,效果很不錯(cuò)。
          -----------------------------
          我前一段時(shí)間還想定制spring的xdoclet,比如:
          對(duì)于一個(gè)FormController,在頭文件聲明@spring.urlMapping url="myFormControllerFC.htm"就可以往urlMapping里面增加一個(gè)值;
          對(duì)于MultiActionController,聲明@spring.urlMapping ,在每一個(gè)Action聲明@spring.url url="myAction.htm",使其同時(shí)生成兩個(gè)bean;
          對(duì)容器管理的bean,只要在一個(gè)method上面聲明@spring.traction tractionType="read only"也可以生成兩個(gè)bean
          只是想法而已,還沒實(shí)現(xiàn),沒時(shí)間,定制xdoclet好難!!
          -------------------------
          --我也SpringMVC的忠實(shí)愛好著o
          customize-xdoclet.rar
          ?描述:
          我暴汗,今天修正了一個(gè)大大的錯(cuò)誤

          下載
          ?文件名: ?customize-xdoclet.rar
          ?文件大小: ?67.9 KB
          ?下載過的: ?文件被下載或查看 78 次



          上一次由大愚弱智于2005-5-24 周二, 下午4:42修改,總共修改了1次
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          spring嘟嘟
          BEA Weblogic
          BEA Weblogic


          性別:性別:男
          年齡:48
          十二宮圖:天平宮
          加入時(shí)間: 2004/04/10
          文章: 256
          來自:
          離線

          文章 時(shí)間: 2005-4-28 12:24:43?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          生成驗(yàn)證的Xdoclet本來就有

          運(yùn)行時(shí)怎么會(huì)動(dòng)態(tài)更改驗(yàn)證?

          我在http://cosoft.org.cn/projects/jsvalidation找到一個(gè)js驗(yàn)證framework,這是一個(gè)很漂亮的驗(yàn)證framework(只是國產(chǎn)的而已,經(jīng)理不是很喜歡),不用重新啟動(dòng)服務(wù)器,很好用!

          這個(gè)有什么用,別人關(guān)閉JS驗(yàn)證的時(shí)候,就不能自動(dòng)使用后臺(tái)驗(yàn)證了
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件 瀏覽發(fā)表者的主頁
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-28 12:59:41?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          大愚弱智 寫道:
          xiaoyu 寫道:
          再講一個(gè)spring mvc的問題。

          如果一個(gè)表單需要多個(gè)PO(VO),怎么辦?難道除了只寫一個(gè)包函的VO就沒有其它的方法了嗎?




          多個(gè)PO?formBackingObject只能返回一個(gè)PO(VO),如果要返回多個(gè)東東,使用 referenceData返回的是一個(gè)Map,在Map里面你愛裝傻就裝啥。例如一個(gè)Map里面裝上一個(gè)List或Map,然后這個(gè)List或Map再裝其它的東西,你的需求是不是這樣子的呢?


          不是,我要的是頁面-->controller(提交多個(gè)PO或VO),不是controller-->頁面
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線

          文章 時(shí)間: 2005-4-28 14:09:03?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          [quote="spring嘟嘟"]生成驗(yàn)證的Xdoclet本來就有
          運(yùn)行時(shí)怎么會(huì)動(dòng)態(tài)更改驗(yàn)證?
          [/quote]

          spring生成驗(yàn)證xdoclet的是有的,我用過一陣子,覺得不好用。

          不是運(yùn)行時(shí)的更改,而是我們測(cè)試的時(shí)候頻繁的更改配置文件。


          后臺(tái)驗(yàn)證有后臺(tái)驗(yàn)證的好長,但使用js驗(yàn)證也自然有其好處:那就是可以在客戶端驗(yàn)證,不必提交到服務(wù)器。
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線

          文章 時(shí)間: 2005-4-30 09:29:22?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          大愚弱智:
          引用:
          另外,Spring的可配置客戶端驗(yàn)證問題,spring借用struts的驗(yàn)證機(jī)制,我用過一陣子,每更改一下配置文件,就得重新啟動(dòng)服務(wù)器,感覺不是很好用


          server端的驗(yàn)證為什么要重啟?我想不明白.

          spring的驗(yàn)證是可以直接new一個(gè)驗(yàn)證類,然后做測(cè)試的.有必要用容器嗎?

          js,是有必要,但如果單單靠js就是找死.
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線

          文章 時(shí)間: 2005-4-30 10:56:34?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          checkbox綁定到boolean的問題我還沒解決,CustomBooleanEditor它只能綁定到Boolean,而不是boolean,只能使用request.getParameter來取得checkbox的值。

          ----這個(gè)問題誰能幫我解決一下
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線

          文章 時(shí)間: 2005-4-30 13:32:24?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          所有的問題都已經(jīng)解決了!只是你們敢不敢使用新的“SpringMVC”,這個(gè)新的“SpringMVC”就是Aurora MVC Framework,在Spring的官方網(wǎng)站有貼出。我下載看了一下,這是SpringMVC的實(shí)踐著在總結(jié)了SpringMVC的各種毛病之后搞出來的一個(gè)估計(jì)是為替代SpringMVC的框架。


          例如對(duì)于xiaoyun所說的提交多個(gè)bo的問題,上面有解釋:
          With Aurora, the framework uses metadata placed in your configuration files to map request values to your
          domain objects. Thus, you can edit one object, or even several, on the same form. The framework uses
          reflection to map each individual request value to your domain object just before your custom processing logic
          is executed. Of course, you are not locked into this approach since sometimes you won't want to map to domain
          objects - you can declare non-domain object values in the same way but you can still leverage every other
          aspect of the framework to keep things consistent. Thus, in almost all cases, you won't have to deal with the
          HttpServletRequest object at all, but the framework does not shield you from it either like other MVC
          frameworks do.

          對(duì)于多選列表問題,它是這樣解決的:
          <SelectMany name="company.types"
          referenceData="types"
          validatorId="multireference"
          errorMessage="There are no company types in the database."
          >
          <Text />
          </SelectMany>


          這是很好的一個(gè)MVC框架,可以作為SpringMVC的代替,值得我們好好研究。
          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信
          xiaoyu
          Weblogic Cluster
          Weblogic Cluster


          性別:性別:男
          年齡:23
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2003/10/01
          文章: 498
          來自: 廣東
          離線



          上一次由xiaoyu于2005-5-03 周二, 下午1:33修改,總共修改了2次
          文章 時(shí)間: 2005-4-30 16:56:55?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          貼上一個(gè)解決boolean值的類,還沒有測(cè)試過(不好意思),是按照spring里的寫的,有少少改動(dòng)(以下的代碼是錯(cuò)誤的,sorry).

          java代碼:?


          package org.springframework.beans.propertyeditors.custom;

          import java.beans.PropertyEditorSupport;

          import org.springframework.util.StringUtils;

          /**
          * 自定義的boolean類型編輯器
          * @author xiaoyu?
          */

          publicclass CustomBasicBooleanEditor extendsPropertyEditorSupport{

          ? ? ? ? publicstaticfinalString VALUE_TRUE = "true";

          ? ? ? ? publicstaticfinalString VALUE_FALSE = "false";

          ? ? ? ? privatefinalboolean allowEmpty;


          ? ? ? ? public CustomBasicBooleanEditor(boolean allowEmpty){
          ? ? ? ? ? ? ? ? this.allowEmpty = allowEmpty;
          ? ? ? ? }

          ? ? ? ? publicvoid setAsText(String text)throwsIllegalArgumentException{
          ? ? ? ? ? ? ? ? if(this.allowEmpty && !StringUtils.hasText(text)){
          ? ? ? ? ? ? ? ? ? ? ? ?//修改,如果為空值,那就是false
          ? ? ? ? ? ? ? ? ? ? ? ? setValue(false);
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? elseif(text.equalsIgnoreCase(VALUE_TRUE)){
          ? ? ? ? ? ? ? ? ? ? ? ? //這句改動(dòng)了
          ? ? ? ? ? ? ? ? ? ? ? ? setValue(true);
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? elseif(text.equalsIgnoreCase(VALUE_FALSE)){
          ? ? ? ? ? ? ? ? ? ? ? ? //這句改動(dòng)了
          ? ? ? ? ? ? ? ? ? ? ? ? setValue(false);
          ? ? ? ? ? ? ? ? }
          ? ? ? ? ? ? ? ? else
          ? ? ? ? ? ? ? ? ? ? ? ? throw newIllegalArgumentException("Invalidboolean value [" + text + "]");
          ? ? ? ? }

          ? ? ? ? publicString getAsText(){
          ? ? ? ? ? ? ? ? return(getValue() == null ? "" : getValue().toString());
          ? ? ? ? }

          }

          返回頂端
          閱讀會(huì)員資料 發(fā)送站內(nèi)短信 發(fā)送電子郵件
          大愚弱智
          Sybase EAServer
          Sybase EAServer


          性別:性別:男
          年齡:24
          十二宮圖:白羊?qū)m
          加入時(shí)間: 2004/08/21
          文章: 77
          來自: 北京
          離線

          文章 時(shí)間: 2005-4-30 20:24:31?? ?標(biāo)題: 引用回復(fù) 將這個(gè)帖子加入我的Blog

          我正在研究Aurora MVC Framework,說不準(zhǔn),里面已經(jīng)解決好了呢。
          Aurora MVC Framework的FormController和其它Controller都派生在Spring的Controller,返回的也是ModelAndView。里面還提供了n多的HTML控件,Validator控件,Javascript都附帶好了,都是為了解決SpringMVC的很多問題而做的,值得我們這幫SpringMVC狂好好研究一下!
          posted on 2006-09-07 18:04 OMG 閱讀(3854) 評(píng)論(0)  編輯  收藏 所屬分類: Spring

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          IT風(fēng)云人物

          文檔

          朋友

          相冊(cè)

          經(jīng)典網(wǎng)站

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 平顺县| 墨脱县| 台前县| 新津县| 陇西县| 锦屏县| 武邑县| 治县。| 时尚| 福贡县| 个旧市| 宁武县| 宜黄县| 甘洛县| 资源县| 尉犁县| 六枝特区| 江孜县| 吉木乃县| 罗江县| 蒙城县| 临猗县| 弥渡县| 泗阳县| 霍城县| 黑河市| 凭祥市| 榆社县| 陆良县| 余姚市| 潮州市| 英吉沙县| 万宁市| 卓尼县| 镇平县| 叙永县| 天全县| 黎平县| 正阳县| 汶上县| 怀宁县|