Yes that seems to be the problem. But I have many applications working on
older struts 2 libraries and the dmi + javascript validation worked.

On Sunday, September 22, 2013, JOSE L MARTINEZ-AVIAL <jlm...@gmail.com>
wrote:
> Maybe it is not able to match the action name in the form (with the
!login) with the action definition? I would take a look at the source to
see how the match is done.
>
>
> 2013/9/22 Néstor Boscán <nesto...@gmail.com>
>>
>> Yes I reenabled DMI but javascript validation is not working when using
DMI. If you use action!method the javascript field validations won't appear.
>>
>> On Sun, Sep 22, 2013 at 2:47 AM, Chris Pratt <thechrispr...@gmail.com>
wrote:
>>>
>>> I believe one of the recent changes was to change the default to
disabling
>>> DMI, but you can re-enable it if you understand the risks.
>>>   (*Chris*)
>>>
>>>
>>> On Sat, Sep 21, 2013 at 6:20 PM, Néstor Boscán <nesto...@gmail.com>
wrote:
>>>
>>> > Hi
>>> >
>>> >     <s:form name="login" method="post" action="login!login.action"
>>> > validate="true">
>>> >         <s:hidden name="request_id"
value="%{#parameters.request_id}"/>
>>> >         <s:textfield name="username" key="username" size="25"
>>> > cssClass="mystyle1"/>
>>> >         <s:password name="password" key="password" size="25"
>>> > cssClass="mystyle1"/>
>>> >     </s:form>
>>> >
>>> > It looks like this version of Struts 2 doesn't like the Dynamic Method
>>> > Invocation in login!login.action. If I don't use DMI it works. Older
>>> > versions of the framework worked with DMI.
>>> >
>>> > Regards,
>>> >
>>> > Néstor
>>> >
>>> >
>>> > On Sat, Sep 21, 2013 at 5:24 PM, <jlm...@gmail.com> wrote:
>>> >
>>> > > Can you provide the jsp snipset for the form?
>>> > > Sent via BlackBerry from T-Mobile
>>> > >
>>> > > -----Original Message-----
>>> > > From: Néstor Boscán <nesto...@gmail.com>
>>> > > Date: Sat, 21 Sep 2013 16:15:23
>>> > > To: Struts Users Mailing List<user@struts.apache.org>
>>> > > Reply-To: "Struts Users Mailing List" <user@struts.apache.org>
>>> > > Subject: S2: Not generating javascript validation
>>> > >
>>> > > Hi
>>> > >
>>> > > I'm using the latest 2.3.15.2 version of struts 2 on weblogic
10.3.6.
>>> > This
>>> > > are my files:
>>> > >
>>> > > LoginAction-validation.xml:
>>> > >
>>> > > <!DOCTYPE validators PUBLIC
>>> > >         "-//Apache Struts//XWork Validator 1.0.3//EN"
>>> > >         "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd";>
>>> > > <validators>
>>> > >   <field name="username">
>>> > >     <field-validator type="required">
>>> > >       <message>El usuario es requerido</message>
>>> > >     </field-validator>
>>> > >   </field>
>>> > >   <field name="password">
>>> > >     <field-validator type="required">
>>> > >       <message>La contrasenia es requerida</message>
>>> > >     </field-validator>
>>> > >   </field>
>>> > > </validators>
>>> > >
>>> > > validators.xml:
>>> > >
>>> > > <?xml version="1.0" encoding="UTF-8"?>
>>> > > <!DOCTYPE validators PUBLIC
>>> > >         "-//Apache Struts//XWork Validator Definition 1.0//EN"
>>> > >         "
>>> > http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd
>>> > > ">
>>> > > <validators>
>>> > >     <validator name="required"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
>>> > >     <validator name="requiredstring"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
>>> > >     <validator name="int"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
>>> > >     <validator name="long"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
>>> > >     <validator name="short"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
>>> > >     <validator name="double"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
>>> > >     <validator name="date"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
>>> > >     <validator name="expression"
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
>>> > >     <validator name="fieldexpression"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
>>> > >     <validator name="email"
>>> > >
class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
>>> > >     <validator name="url"
>>> > > class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
>>> > >     <validator name="visitor"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
>>> > >     <validator name="conversion"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
>>> > >     <validator name="stringlength"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
>>> > >     <validator name="regex"
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
>>> > >     <validator name="conditionalvisitor"
>>> > >
>>> > >
>>> >
class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
>>> > > </validators>
>>> > >
>>> > > The form tag has validate="true".
>>> > >
>>> > > When I generate the login page I get:
>>> > >
>>> > > <script type="text/javascript">
>>> > >     function validateForm_login() {
>>> > >         var getFieldValue = function(field) {
>>> > >             var type = field.type ? field.type : field[0].type;
>>> > >             if (type == 'select-one' || type == 'select-multiple') {
>>> > >                 return (field.selectedIndex == -1 ? "" :
>>> > > field.options[field.selectedIndex].value);
>>> > >             } else if (type == 'checkbox' || type == 'radio') {
>>> > >                 if (!field.length) {
>>> > >                     field = [field];
>>> > >                 }
>>> > >                 for (var i = 0; i < field.length; i++) {
>>> > >                     if (field[i].checked) {
>>> > >                         return field[i].value;
>>> > >                     }
>>> > >                 }
>>> > >                 return "";
>>> > >             }
>>> > >             return field.value;
>>> > >         }
>>> > >         form = document.getElementById("login");
>>> > >         clearErrorMessages(form);
>>> > >         clearErrorLabels(form);
>>> > >
>>> > >         var errors = false;
>>> > >         var continueValidation = true;
>>> > >
>>> > >         return !errors;
>>> > >     }
>>> > > </script>
>>> > >
>>> > > It's like the validation framework is not detecting the fields.
>>> > >
>>> > > Regards,
>>> > >
>>> > > Nestor Boscan
>>> > >
>>> > >
>>> >
>>
>
>

Reply via email to