Create multiple methods in one action class itself in Struts2?

若如初见. 提交于 2019-12-01 13:14:15

问题


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..


回答1:


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> 



回答2:


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




回答3:


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.



来源:https://stackoverflow.com/questions/21281444/create-multiple-methods-in-one-action-class-itself-in-struts2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!