老妖的博客
          現(xiàn)實(shí)的中沒有幾個(gè)人能夠真為對(duì)方去死,甚至山盟海誓很快就會(huì)在金錢面前變的微不足道,這才是生活。沒有永遠(yuǎn)的愛,除了你的父母對(duì)你,當(dāng)然也就沒有永遠(yuǎn)的恨,更沒有永遠(yuǎn)的痛,時(shí)間是最好的治療大師,它會(huì)很快撫平你心靈上累累的傷痕。很多年以后你想起來時(shí),那些在你生命中洶涌來往的人群至多是個(gè)模糊的影子或者毫無意義的名字
          posts - 105,  comments - 171,  trackbacks - 0

          service層編寫商業(yè)邏輯總會(huì)有很多的返回信息,那么如何合理的和struts/webwork結(jié)合起來呢,我參考了spring論壇上的一個(gè)做法如下:

           1/** 
           2 * 
           3 */
           
           4package it.linksystem.csai.web.util; 
           5
           6import java.util.Iterator; 
           7
           8import it.linksystem.csai.client.delegate.UserBusinessDelegate; 
           9import it.linksystem.csai.common.Error; 
          10import it.linksystem.csai.common.Warning; 
          11import it.linksystem.csai.common.dto.UserDTO; 
          12
          13import javax.servlet.http.HttpServletRequest; 
          14
          15import org.apache.struts.action.ActionMessage; 
          16import org.apache.struts.action.ActionMessages; 
          17
          18import net.sf.acegisecurity.Authentication; 
          19import net.sf.acegisecurity.AuthenticationException; 
          20import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken; 
          21import net.sf.acegisecurity.ui.AbstractProcessingFilter; 
          22
          23/** 
          24 * @author Srepfler Srgjan 
          25 * 
          26 */
           
          27public class LoginProcessingFilter extends AbstractProcessingFilter 
          28
          29   /* (non-Javadoc) 
          30    * @see net.sf.acegisecurity.ui.AbstractProcessingFilter#getDefaultFilterProcessesUrl() 
          31    */
           
          32   public String getDefaultFilterProcessesUrl() 
          33      return "/LoginSubmit.do"
          34   }
           
          35
          36   /* (non-Javadoc) 
          37    * @see net.sf.acegisecurity.ui.AbstractProcessingFilter#attemptAuthentication(javax.servlet.http.HttpServletRequest) 
          38    */
           
          39   public Authentication attemptAuthentication(HttpServletRequest request) 
          40         throws AuthenticationException 
          41      ActionMessages errors = new ActionMessages(); 
          42      ActionMessages warnings = new ActionMessages(); 
          43       
          44      UserBusinessDelegate ubd = new UserBusinessDelegate(); 
          45      String username = request.getParameter("j_username"); 
          46      String password = request.getParameter("j_password"); 
          47      if(username == null)
          48         username =""
          49      }
           
          50      if(password == null)
          51         password=""
          52      }
           
          53      UserDTO userDTO = new UserDTO(); 
          54      userDTO.setUsername(username); 
          55      userDTO.setPassword(password); 
          56      UserDTO resultDTO = ubd.login(userDTO.getUsername(),userDTO.getPassword()); 
          57       
          58      if(resultDTO.isError())
          59         for (Iterator theiterator = resultDTO.errorsIterator(); theiterator.hasNext();) 
          60            Error theerror = (Error) theiterator.next(); 
          61            errors.add(theerror.getCode(),new ActionMessage(theerror.getCode())); 
          62         }
           
          63      }
           else 
          64         if(resultDTO.isWarning())
          65            for (Iterator theiterator = resultDTO.warningsIterator(); theiterator.hasNext();) 
          66               Warning thewarning = (Warning) theiterator.next(); 
          67               warnings.add(thewarning.getCode(),new ActionMessage(thewarning.getCode())); 
          68            }
           
          69         }
           
          70         request.getSession().setAttribute(Constants.USER_KEY,resultDTO); 
          71         logger.info("Login dell utente: "+resultDTO.getUsername()); 
          72      }
           
          73       
          74      UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username,password); 
          75      authRequest.setDetails(request.getRemoteAddr()); 
          76      return this.getAuthenticationManager().authenticate(authRequest); 
          77   }
           
          78
          79}
           
          80
          DTO撤掉,然后并到service層的BaseService中,做個(gè)接口用來記錄error message,然后Baseservice的實(shí)現(xiàn)中提供Errors message add和Iterator,以及iserror,iswarning,然后其他service調(diào)用其方法,至于view層調(diào)用則跟上述類似。
          posted on 2005-09-28 22:30 老妖 閱讀(827) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          隨筆分類(48)

          隨筆檔案(104)

          好友鏈接

          我的豆瓣

          積分與排名

          • 積分 - 221205
          • 排名 - 257

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 彝良县| 陆丰市| 文化| 澜沧| 龙川县| 石阡县| 乌苏市| 巴里| 土默特右旗| 房产| 鹤庆县| 龙门县| 万年县| 彭泽县| 清苑县| 昌宁县| 吴江市| 杂多县| 梅河口市| 阜康市| 浦城县| 大方县| 额济纳旗| 平邑县| 湾仔区| 将乐县| 长乐市| 清丰县| 罗甸县| 新和县| 沂水县| 曲阜市| 岑溪市| 大邑县| 新田县| 洛阳市| 胶州市| 长治县| 北川| 广东省| 吴江市|