sabby
sabby

Reputation: 47

Create multiple methods in one action class itself in Struts2?

Can I create two methods in the same Action Class? If so how can we specify it in the struts.xml file ?

For example : I created a simple validation action class to validate the email address as well as password using two separate regular expression. I created two Methods in the Action class say: emailVerification() and passVerification(). I wrote all the necessary validation code inside, but now when they return SUCCESS they should result into the same success page result and for ERROR likewise..

Upvotes: 0

Views: 9636

Answers (3)

Sourabh
Sourabh

Reputation: 1

Rather than code a separate mapping for each action class that uses this pattern, you can write it(method="{1}") once as a wildcard mapping.

Upvotes: 0

Mikhail
Mikhail

Reputation: 4223

Using the folowing URL format you can call any public method from Struts action class:

/ActionName!publicMethodName.action?p1=v1&p2=v2

For more information refer to: Action Configuration

Upvotes: 1

Uchenna Nwanyanwu
Uchenna Nwanyanwu

Reputation: 3204

Yes you can create any number of methods in an Action Class. You can do something like this

package com.myvalidation;

public class MyValidationClass extends ActionSupport
{
     public String emailVerification() throws Exception
     {
         //Your validation logic for email validation
         return SUCCESS;
     }

     public String passVerification() throws Exception
     {
         //Your validation logic for password validation
         return SUCCESS;
     }
}

struts.xml

<action name="emailVerification" method="emailVerification" class="com.myvalidation.MyValidationClass">
        <result name="success">/your_success_jsp.jsp</result>
        <result name="input">/your_error_jsp.jsp</result>
</action> 

<action name="passVerification" method="passVerification" class="com.myvalidation.MyValidationClass">
    <result name="success">/your_success_jsp.jsp</result>
    <result name="input">/your_error_jsp.jsp</result>
</action> 

Upvotes: 4

Related Questions