caike

          優秀是一種習慣,生命是一種過程,兩點之間最短的距離并不一定是直線,只有知道如何停止的人才知道如何加快

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            3 隨筆 :: 2 文章 :: 19 評論 :: 0 Trackbacks

          Jodd是一個開源項目,http://jodd.sourceforge.net有一個好用的jsp標簽,可以大大簡化有表單輸入的controller

           

          使用Jodd的優點:

          1. 簡化和統一controller,拋棄extends SimpleFormController,統一使用implements Controller的方式。

          2. 簡化JSP頁面的bind,不需要一個字段一個字段的綁定。

          3. bean沒有任何要求,可以使用任意的bean做為formBean.

           

          使用方法簡介:

          1.jodd.jar放到web-inf->lib下,在web.xml里聲名標簽:

          <taglib>

                 
          <taglib-uri>jodd</taglib-uri>

                 
          <taglib-location>/WEB-INF/lib/jodd.jar</taglib-location>

              
          </taglib>

           

          2.任意的一個javaBean做為FormBean

          package caike; 

          public class User {

                 
          private String userName; 

                 
          private String password;
               

                 
          public String getPassword() {

                        
          return password;

                 } 

                 
          public void setPassword(String pwd) {

                        
          this.password = pwd;

                 } 

                 
          public String getUserName() {

                        
          return userName;

                 } 

                 
          public void setUserName(String username) {

                        
          this.userName = username;

                 }
           

          }

          3.JSP頁面使用jodd tag:,比如對應用戶登錄頁面的

          <%@page import="caike.User"%>

          <%@taglib uri="jodd" prefix="jodd"%>

           

          <jodd:form beans="user" scopes="session">

          <form action="my.htm" method="post" >
           

              
          <table width="300" border="0" cellspacing="0" cellpadding="0"

                 align
          ="center" class="white">  

                 
          <tr>

                     
          <td height="32" align="right" width="107">用戶名:</td>

                 
          <td height="32" width="193"><input type="text" name="userName"

                        class
          ="input" size="20"> </td>          

                 
          </tr>

                 
          <tr>

                     
          <td height="33" align="right" width="107">密碼:</td>

                     
          <td height="33" width="193"><input type="password" name="password"

                        class
          ="input" size="21"></td>

                 
          </tr>
                

                  
          <tr>

                     
          <td height="69" align="center" colspan="2">

                      
          <input type="submit" name="Submit" value="登錄">

                 
          </tr>

              
          </table>

          </form>

          </jodd:form>

           

          4.Dispatch-servelt.xml中對controller的配置

          <bean id="myController" class="caike.MyController">    

              </bean>

              不再需要這種方式:

              <!--

                 <bean id="myController" class="caike.MyFormController">    

                 <property name="commandClass" value="caike" />      

                 <property name="formView" value="userForm" />   

                 </bean>

              -->

          5.controller中取出user

          package caike; 

          import javax.servlet.http.HttpServletRequest;

          import javax.servlet.http.HttpServletResponse; 

          import jodd.bean.BeanUtil; 

          import org.springframework.web.servlet.ModelAndView;

          import org.springframework.web.servlet.mvc.Controller;

           

          public class MyController implements Controller {

           

                 
          public ModelAndView handleRequest(HttpServletRequest request,

                               HttpServletResponse response) 
          throws Exception {

           

                        User user 
          = new User();

                        BeanUtil.load(user, request);

                        System.out.println(
          "用戶名:" + user.getUserName() + " 密碼:" + user.getPassword());

                        
          return null;

                 }

           

          }

           

          需要注意的地方:

          表單中對應的名字namejavaBean里對應的屬性名要相同。

          <input type="text" name="userName"

                        class="input" size="20">

          public class User {

                 private String userName;

          .......

           參考:

          http://www.aygfsteel.com/calvin/archive/2005/08/24/10914.html

           花錢的年華   簡化Spring(4)--View層

          posted on 2005-12-23 09:50 caike 閱讀(3268) 評論(4)  編輯  收藏 所屬分類: SpringFramework

          評論

          # re: 使用jodd form簡化SpringMVC中Controller的配置 2005-12-23 10:05 江南白衣@ITO
          yes,我們一直使用這個form,不過這個東西的一個缺點是對內嵌屬性的支持不好,我動手修改了一下,見我的簡化Spring系列--view篇.  回復  更多評論
            

          # re: 使用jodd form簡化SpringMVC中Controller的配置 2005-12-23 10:23 caike
          呵呵,我當初好像也是從您那看到的,加上你的鏈接了。
          另個有個問題請教一下,有時候用jodd 的BeanUtil.load(user, request);
          load到的屬性會是一個內存地址,這個問題你遇到過嗎?最后無奈的用了request.getParameter();
          :-(  回復  更多評論
            

          # re: 使用jodd form簡化SpringMVC中Controller的配置 2005-12-23 10:42 江南白衣@ITO
          我不用Jodd的BeanUtil啊,改用Apache Commons了.  回復  更多評論
            

          # re: 使用jodd form簡化SpringMVC中Controller的配置 2006-08-25 13:03 樂樂
          呵呵,我還有一點不明白的地方。所謂的綁定是注重什么地方?是一個編輯動作的時候原來數據的填充?還是保存動作頁面數據提交到邏輯里面處理?

          如果是后者,完成可以去掉jodd這樣的標簽,功能照樣能實現。

          我寫了代碼,但是運行不通過。并沒有在編輯前填入數據,我的代碼如下
          控制器
          public class SpringappController implements Controller {

          public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          PriceIncrease price = new PriceIncrease();
          price.setPercentage(100 + "");
          ModelAndView mav = new ModelAndView("hello.jsp");
          mav.addObject(price);
          return mav;
          }
          }

          頁面
          <form name="priceIncrease">
          <jodd:form beans="priceIncrease" scopes="request">
          <p><input type="text" name="percentage"/></p>
          <input type="submit" value="change"/>
          </jodd:form>
          </form>  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 太谷县| 广东省| 资兴市| 定兴县| 布尔津县| 晋江市| 鄂托克前旗| 吉安市| 鄂尔多斯市| 梁平县| 元氏县| 富阳市| 晴隆县| 全椒县| 宿州市| 宁武县| 明溪县| 盖州市| 怀仁县| 喀喇沁旗| 富锦市| 平乡县| 宣化县| 麦盖提县| 龙川县| 商都县| 延边| 沅陵县| 平陆县| 建始县| 营口市| 和平县| 安西县| 丹阳市| 英超| 浦城县| 双柏县| 石柱| 行唐县| 绍兴市| 沙洋县|