问题
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