try{
    Float.parseFlot(inputStr);   //成功说明是数字
}catch(){
    //失败说明有其他字符
}

解决方案 »

  1.   

    这主要看你在validator-rules.xml中的 <validator>采用的method方法是什么,如果这个方法的输入是字符串,那么你就得用字符串数据。常见的method方法大多是采用字符串输入的,所以基本见到的例子都是字符串形式。例如commons-validator自己带的例子,age本来是数字的,但这里也定义成String(文件名是ValidateBean.java):
    String lastName, firstName, street1, street2, city, state, postalCode, age;数据验证是否是整数的方法(文件名是validator-example.xml):
     <validator name="int"
                     classname="org.apache.commons.validator.TestTypeValidator"
                     method="validateInt"
                     methodParams="java.lang.Object,org.apache.commons.validator.Field"
                     msg="errors.int"/>.............
     <field  property="age" depends="required,int">
                   <arg key="nameForm.age.displayname"/>
             </field>
      

  2.   

    你可以这样做:
      对字符串的每个字符判断是否是数字行了,
      for(int i=0;i<testParam.length();i++){
      if(Character.isDigit(testParam.charAt(i))==false){
          flag=0;
        }
     
     }
     if(flag==0){
     System.out.println("is not contain  character(不能包含字符)!");
     } 
      

  3.   

    public static int checkData(
          String d,
          int n1,
          int n2,
          boolean isEmpty,
          boolean isNegative) {
        String str;
        if(n2 == 0){
          str = "0123456789" ;
        }
        else{
         str = "0123456789.";
        }
        n1 -= n2;
        int i;
        if (d == null || d.trim().equals("")) {
          if (!isEmpty) {
            return 1;
          }
        }
        else {
          String new_d = d.trim();
          int last_d = new_d.length() - new_d.indexOf(".") - 1;
          if (isNegative) {
            if (new_d.charAt(0) == '-') {
              new_d = new_d.substring(1);
            }
          }
          for (i = 0; i < new_d.length(); i++) {
            if (str.indexOf(new_d.charAt(i)) == -1
                || (new_d.indexOf(".") == 0 || last_d == 0)
                || new_d.indexOf(".") != new_d.lastIndexOf(".")) {
              return 2;
            }
          }
          if (new_d.indexOf(".") != -1) {
            if (new_d.indexOf(".") > n1) {
              return 3;
            }
          }
          else {
            if (new_d.length() > n1) {
              return 3;
            }
          }
          if (last_d > n2 && (new_d.indexOf(".") != -1)) {
            return 4;
          }
        }
        return 0;
      }
      

  4.   

    可以在validate里控制。
    也可以直接在页面上进行校验。
    后者比较简单。我写的是js函数。//检验是否为有效的实数,其中s为输入的值,i为要求的整数位数,d为要求的小数位数
    function isValidateFloat(s,i,d) 
    {/*
    if(!isNumeric(s)) {
    var dotPos = s.indexOf(".");
    if(dotPos == -1) {
    return (isInteger(s) && s.length < i);
    } else if(dotPos > i) {
    return false;
    } else if(s.length - dotPos - 1 > d) {
    return false;
    } else {
    return true;
    }
    } else {
    return false;
    }
    */

    if(s.indexOf(".")==0){return false;}
    else
    {
    if(s.indexOf(".")<0)
    {
    if(s.length>i){return false;}
    }
    else
    {
    var aArray=s.split(".");
    if(aArray[0].length>i || aArray[1].length>d){return false;}
    }
    }
    return true;

    }
      

  5.   

    一般像这种简单的验证都是在客户端进行处理,最好的方法就是采用正则表达式进行验证.JS本身也支持正则表达式.
    提供一个方法:
    <script lang='JavaScript'>
    // e is a element
    function validatePattern(e)
    {
    var pattern = e.pattern;
    var testString = trim(e.value);var re = new RegExp(pattern,"i");
    if(testString.match(re)==null)
    {
    alert(e.errorMessage==null?"Invalid value. Please retype.":e.errorMessage);
    e.focus();
    return false;
    }
    return true;
    }
    </script><input type="Text" name="safetyStock" maxlength="4" pattern="^[0-9]+\.{0,1}[0-9]*$" onblur = "return validatePattern(this);" errorMessage="Please input a number.">
      

  6.   

    1  可以利用JavaScript在客户端进行控制,方法就是在form提交的时候触发一个事件2  可以利用Struts的validate框架,在XML中灵活配置3  可以利用Form Bean的validate方法,在程序中写,不如第2种方法灵活
      

  7.   

    可以利用JavaScript在客户端进行控制,或者就是利用STRUTS的validate来进行校验;
      

  8.   

    可以直接用JavaScript在客户端进行控制,在form 里面用onsubmit,这样也比较简单,对于习惯传统的JavaScript脚本控制比较容易上手。我给你发了份样例
      

  9.   

    采用Struts的validate框架:
    一个validation.xml的例子:
    <global>
            <constant>
                <constant-name>number</constant-name>
                <constant-value>^[0-9]*$</constant-value>
            </constant>
    </global>
    ...
            <form name="对应的actionForm(跟struts-config.xml中的名字一致)">
                <field property="xxx" depends="mask">
                <msg name="mask" key="errors.number" resource="true"/>
                <arg0 key="项目名" resource="false"/>
                    <var>
                        <var-name>mask</var-name>
                        <var-value>${number}</var-value>
                    </var>
            </form>
    其中的errors.number需要在resource文件中定义,如果校验失败,会以次作为出错信息的message
    struts-config.xml中追加:
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
            /WEB-INF/validation.xml" />
      </plug-in>
      

  10.   

    看struts自带的例子和文档嘛,里面都有的
      

  11.   

    最简单的在客户端用JAVASCRIPT来检验,符合传统习惯,楼上说的也是几种解决方案。
    如果你不想提交到服务器端检测,而又不想对XML配置,在客户端用JAVASCRIPT来检验还是不错的选择的。学习