Property names are case sensitive. Your property name is "userEmail" not useremail

  public void setUserEmail(String userEmail)

  <s:textfield key="useremail" />   (wrong)

The params interceptor will try to call setUseremail(String). As this doesn't exist userEmail is null.

<validators>
  <field name="useremail">    (wrong)

The validator will be calling getUseremail() to see if the value has been set correctly. As this getter doesn't exist validation fails.
Remember validation is of the object, not the form

Leena Borle wrote:
Hi,
I have just started learning Struts-2. I am using sruts2-blank application
on Tomcat server. I added email field in login file. Problem I have is
validation is failing. Even if I put email address in email field, framework
comes back with the error message from my validation.XML file(Email field
required).
 I see following error on the server...
SEVERE: ParametersInterceptor - [setParameters]: Unexpected Exception
catched: Error setting expression 'useremail' with value '[Ljava.lang.String
;@8cd4db'

I would appreciate any help on this.

Leena


Here are my files ...
Login.jsp

<body>
<s:form action="Login">
   <s:textfield key="username"/>
   <s:password key="password" />
   <s:textfield key="useremail" />
   <s:submit/>
</s:form

Login-validation.xml

<validators>
   <field name="useremail">
           <field-validator type="requiredstring">
               <message key="requiredstring"/>
       </field-validator>
   </field>

   <field name="username">
       <field-validator type="requiredstring">
           <message key="requiredstring"/>
       </field-validator>
   </field>
   <field name="password">
       <field-validator type="requiredstring">
           <message key="requiredstring"/>
       </field-validator>
   </field>
</validators>


Login.java

/*
* $Id: Login.java 471756 2006-11-06 15:01:43Z husted $
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package example;

public class Login extends ExampleSupport {

   public String execute() throws Exception {

       if (isInvalid(getUsername())) return INPUT;

       if (isInvalid(getPassword())) return INPUT;

       return SUCCESS;
   }

   private boolean isInvalid(String value) {
       return (value == null || value.length() == 0);
   }

   private String username;

   public String getUsername() {
       return username;
   }

   public void setUsername(String username) {
       this.username = username;
   }

   private String password;

   public String getPassword() {
       return password;
   }

   public void setPassword(String password) {
       this.password = password;
   }

   private String userEmail;

   public String getUserEmail() {
       System.out.println("email is  getUserEmail(Login) " + userEmail);
       return userEmail;
   }

   public void setUserEmail(String userEmail) {
       System.out.println("email is  setUserEmail (Login)" + userEmail);
       this.userEmail = userEmail;
   }

}

package.properties have property defined ,
useremail = Email

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

No virus found in this incoming message.
Checked by AVG Free Edition. Version: 7.5.472 / Virus Database: 269.8.9/832 - Release Date: 4/06/2007 6:43 PM


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to