Как проверить текстовое поле для номера только в Struts 2? - PullRequest
2 голосов
/ 27 июня 2011

Я очень новичок в Struts 2. У меня есть три текстовых поля на моей странице, я поставил проверку только для чисел (0-9) в этих текстовых полях. В моем файле validation.xml код похож на

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
    <field name="disSlab.minAmt">

        <field-validator type="requiredstring">
            <message>Required</message>
        </field-validator>
        <field-validator type="int">
                  <param name="min">0</param>
                  <param name="max">9</param>
                  <message>Data Not Valid</message>
        </field-validator>
     </field>

    <field name="disSlab.maxAmt">
        <field-validator type="requiredstring" short-circuit="true">
            <message>Required</message>
        </field-validator>

    </field>
    <field name="disSlab.schemeValue">
        <field-validator type="requiredstring" short-circuit="true">
            <message>Required</message>
        </field-validator>

    </field>

</validators>

Я знаю, что <field-validator type="int"> не для числа поданных. но мне нужно подсказать пользователю, когда пользователь вводит что-либо, кроме 0 до 9

Не могли бы вы помочь мне, что я должен добавить в Поданный для проверки, чтобы я мог решить мою проблему? Спасибо в Adv.

Друмил Шах

Это не решение, это мои дальнейшие детали моего вопроса

Смотрите, я отладил исходный код для проверки lib. он генерирует код запроса на стороне клиента, как это ..

<script type="text/javascript">
  function validateForm_updateSlabDataFormId() {
      form = document.getElementById("updateSlabDataFormId");
      clearErrorMessages(form);
      clearErrorLabels(form);

      var errors = false;
      var continueValidation = true;
      // field name: disSlab.minAmt
      // validator name: requiredstring
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "requiredstring on amt";
          if (continueValidation && field.value != null && (field.value == "" || field.value.replace(/^\s+|\s+$/g, "").length == 0)) {
              addError(field, error);
              errors = true;

          }
      }
      // field name: disSlab.minAmt
      // validator name: required
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "required on amt";
          if (field.value == "") {
              addError(field, error);
              errors = true;

          }
      }
      // field name: disSlab.minAmt
      // validator name: conversion
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "Conversion needed";
      }
      // field name: disSlab.minAmt
      // validator name: int
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "Data Not Valid";
          if (continueValidation && field.value != null) {
              if (parseInt(field.value) <
                  0 ||
                  parseInt(field.value) >
                  9) {
                  addError(field, error);
                  errors = true;

              }
          }
      }
</script>

См. Этот код генерируется автоматически. Этот код генерируется, когда я отправляю страницу. но он не генерируется перед отправкой страницы .. эта проблема только для <field-validator type="conversion"> Не для типа = требуется.

Не могли бы вы помочь мне решить эту проблему ..

Наконец-то мне нужно Я не хочу перезагружать страницу для проверки номера или любой другой проверки регулярных выражений. это работает только для необходимой проверки.

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Это не решение, это мои дальнейшие детали моего вопроса

Смотрите, я отладил исходный код для проверки lib.он генерирует код запроса на стороне клиента, как этот ..

<script type="text/javascript">
  function validateForm_updateSlabDataFormId() {
      form = document.getElementById("updateSlabDataFormId");
      clearErrorMessages(form);
      clearErrorLabels(form);

      var errors = false;
      var continueValidation = true;
      // field name: disSlab.minAmt
      // validator name: requiredstring
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "requiredstring on amt";
          if (continueValidation && field.value != null && (field.value == "" || field.value.replace(/^\s+|\s+$/g, "").length == 0)) {
              addError(field, error);
              errors = true;

          }
      }
      // field name: disSlab.minAmt
      // validator name: required
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "required on amt";
          if (field.value == "") {
              addError(field, error);
              errors = true;

          }
      }
      // field name: disSlab.minAmt
      // validator name: conversion
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "Conversion needed";
      }
      // field name: disSlab.minAmt
      // validator name: int
      if (form.elements['disSlab.minAmt']) {
          field = form.elements['disSlab.minAmt'];
          var error = "Data Not Valid";
          if (continueValidation && field.value != null) {
              if (parseInt(field.value) <
                  0 ||
                  parseInt(field.value) >
                  9) {
                  addError(field, error);
                  errors = true;

              }
          }
      }
</script>

См. Этот код генерируется автоматически.Этот код генерируется, когда я отправляю страницу.но он не сгенерирован перед отправкой страницы .. эта проблема только для

Не для типа = требуется.

Наконец, мне нужно, я не хочуперезагрузить страницу для проверки номера или любой другой проверки регулярных выражений.это работает только для необходимой проверки.

-------------------------------------------------------------------------------------------

Наконец-то я получил свой ответ

Позвольте мне объяснить, кто может достичь решения

Мне нужно поставить проверку для текстового поля для проверки ввода только с номерами.

Я думаю, что Struts2 предоставляет нам эту базовую проверку, но я не могу ее найти.

Поэтому я поставил проверку регулярного выраженияна моем поле, например

<field-validator type="regex" short-circuit="true">
    <param name="expression"><![CDATA[^[0-9]+$]]></param>
         <message>Not Valid Number</message>
 </field-validator>

Это прекрасно работает с проверкой Ajax-JQuery.Я забыл поставить CDATA в моем регулярном выражении.но теперь это работает нормально.

Спасибо за вашу поддержку.

Друмил Шах

1 голос
/ 27 июня 2011

Вы можете использовать валидатор регулярных выражений , чтобы сопоставить строку только с числами.

...