struts 2.0 數(shù)據(jù)校驗(yàn)的另一種方式

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

          SaveUserAction.java文件的內(nèi)容:

          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的文件內(nèi)容:
            

          <?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文件的內(nèi)容:

          <?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>

          還有一個(gè)問(wèn)題,就是校驗(yàn)信息會(huì)重復(fù),在錯(cuò)誤的情況下。由以下代碼可以測(cè)試:

          @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 是有狀態(tài)的 在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 閱讀(178) 評(píng)論(0)  編輯  收藏 所屬分類: SSH

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

          導(dǎo)航

          統(tǒng)計(jì)

          公告

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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          Ajax

          Blogs

          DB

          java

          Open source

          ORM

          Tools/Help

          vedio Tech

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安徽省| 成都市| 县级市| 吉隆县| 宝兴县| 桃江县| 枝江市| 合水县| 新余市| 天祝| 肃宁县| 垦利县| 息烽县| 台安县| 安乡县| 德安县| 泗洪县| 崇义县| 兰坪| 宁安市| 淮南市| 天祝| 会宁县| 久治县| 赫章县| 福清市| 静宁县| 揭东县| 和顺县| 巴塘县| 政和县| 永平县| 石门县| 曲松县| 双辽市| 崇仁县| 沅江市| 五华县| 林芝县| 兴海县| 革吉县|