struts 2.0 數據校驗的另一種方式

          com.test.action.user包下:
                 SaveUserAction.java
                SaveUserAction-validation.xml

          SaveUserAction.java文件的內容:

          package com.test.action.user;

          import java.util.Iterator;
          import java.util.Map;
          import java.util.Set;

          import com.opensymphony.xwork2.ActionSupport;
          import com.test.bean.User;
          import com.test.service.UserService;

          public class SaveUserAction extends ActionSupport
          {
          private User user;
          private UserService service;

          public User getUser()
          {
             return user;
          }

          public void setUser(User user)
          {
             this.user = user;
          }

          public UserService getService()
          {
             return service;
          }

          public void setService(UserService service)
          {
             this.service = service;
          }

          @Override
          public String execute() throws Exception
          {
             this.service.save(this.user);

             return SUCCESS;
          }

          @Override
          @SuppressWarnings("unchecked")
          public void validate()
          {
             Map map = this.getFieldErrors();
             Set set = map.keySet();

             for (Iterator iter = set.iterator(); iter.hasNext();)
             {
              System.out.println(map.get(iter.next()));
             }
          }
          }

          SaveUserAction-validation.xml的文件內容:
            

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"    " <validators>
          <field name="user">
             <field-validator type="visitor">
              <param name="context">user</param>
              <param name="appendPrefix">true</param>
              <message>user's </message>
             </field-validator>
          </field>
          </validators>    

          com.test.bean包下的文件:
                 User.java;
                 User-user-validation.xml

          User-user-validation.xml文件的內容:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "

          <validators>
          <field name="firstname">
             <field-validator type="requiredstring">
              <message>required first name</message>
             </field-validator>
          </field>

          <field name="lastname">
             <field-validator type="requiredstring">
              <message>required last name</message>
             </field-validator>
          </field>

          <field name="age">
             <field-validator type="required">
              <message>required age</message>
             </field-validator>
             <field-validator type="int">
              <param name="min">1</param>
              <param name="max">150</param>
              <message>age should be between ${min} and ${max}</message>
             </field-validator>
          </field>

          </validators>

          還有一個問題,就是校驗信息會重復,在錯誤的情況下。由以下代碼可以測試:

          @Override
          @SuppressWarnings("unchecked")
          public void validate()
          {
             Map map = this.getFieldErrors();
             Set set = map.keySet();

             for (Iterator iter = set.iterator(); iter.hasNext();)
             {
              System.out.println(map.get(iter.next()));
             }
          }
          }

          解決方法:
                applicationContext.xml 文件中的配置action中加入:Struts 2.0 的action 是有狀態的 在spring 配置的action 中加上 scope="prototype";

          配置如下:<bean id="saveUserAction" class="com.test.action.user.SaveUserAction" scope="prototype">
          <property name="service" ref="userService"></property>
          </bean>

          posted on 2010-05-12 23:12 smallfa 閱讀(179) 評論(0)  編輯  收藏 所屬分類: SSH

          <2010年5月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          公告

          smallfa
          博客園
          C++博客
          博客生活
          Blogjava
          足球博客
          微博
          Redsaga

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          Ajax

          Blogs

          DB

          java

          Open source

          ORM

          Tools/Help

          vedio Tech

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 林口县| 桐乡市| 丰都县| 栾城县| 邻水| 茌平县| 新宾| 新密市| 湟源县| 宿州市| 驻马店市| 桦甸市| 罗定市| 昆明市| 天祝| 昌江| 天全县| 韶山市| 湘乡市| 奉贤区| 商都县| 张家川| 赤水市| 鹤壁市| 顺平县| 云浮市| 抚松县| 信宜市| 北票市| 江油市| 沈阳市| 台中市| 莱阳市| 临潭县| 襄城县| 民乐县| 依兰县| 福清市| 宜昌市| 文登市| 丹江口市|