在Struts2中的一个动作类本身中创建多个方法?

时间:2014-01-22 11:18:12

标签: java struts2 struts

我可以在同一个Action类中创建两个方法吗?如果是这样,我们如何在struts.xml文件中指定它?

例如:我使用两个单独的正则表达式创建了一个简单的验证操作类来验证email address以及password。 我在Action类中创建了两个方法:emailVerification()passVerification()。 我在里面写了所有必要的验证码,但现在当它们返回SUCCESS时,它们应该会产生相同的成功页面结果,同样也会导致ERROR ......

3 个答案:

答案 0 :(得分:4)

是的,您可以在Action Class中创建任意数量的方法。你可以做这样的事情

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> 

答案 1 :(得分:1)

使用以下URL格式,您可以从Struts操作类调用任何公共方法:

  

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

有关更多信息,请参阅:Action Configuration

答案 2 :(得分:0)

不是为使用此模式的每个操作类编写单独的映射,而是可以将其编写(method =“{1}”)一次作为通配符映射。