You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Norris Shelton <no...@yahoo.com> on 2009/02/19 21:31:11 UTC
Struts 2.1 validation with annotations
I am looking to set-up validation, but I am getting errors. I added the following to my struts.xml:
<package name="conap" extends="struts-default">
<interceptors>
<interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>
<interceptor-stack name="validationStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="validation"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultStack"/>
</package>
The class that I want to validate is defined as follows:
@ParentPackage("conap")
public class SubmitAction extends ActionSupport implements ModelDriven<Application> {
...
@VisitorFieldValidator
public Application getModel() {
return application;
}
...
@Action(
results = {
@Result(name = "success", location = "/WEB-INF/content/soldier/login-success.jsp"),
@Result(name = "error", location = "/WEB-INF/content/soldier/login-error.jsp")},
interceptorRefs = {@InterceptorRef("validationStack")}
)
public String execute() throws Exception {
...
}
}
The class that I want to validate is defined as follows:
public class Application {
...
@RequiredFieldValidator(type = ValidatorType.FIELD, message = "Major is required")
public void setMajorCd(String majorCd) {
this.majorCd = majorCd;
}
...
@RequiredFieldValidator(type = ValidatorType.FIELD, message = "Expected Entry Date is required")
public void setExpectedEntryDate(String expectedEntryDate) {
this.expectedEntryDate = expectedEntryDate;
}
}
When I submit to the action, I get an exception:
Struts Problem Report
Struts Problem Report
Struts has detected an unhandled exception:
Messages:
File: com/opensymphony/xwork2/util/TextParseUtil.java
Line number: 155
________________________________
Stacktraces
java.lang.NullPointerException
com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:155)
com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:116)
com.opensymphony.xwork2.util.TextParseUtil.translateVariables(TextParseUtil.java:38)
com.opensymphony.xwork2.validator.validators.ValidatorSupport.getMessage(ValidatorSupport.java:99)
com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.validateObject(VisitorFieldValidator.java:156)
com.opensymphony.xwork2.validator.validators.VisitorFieldValidator.validate(VisitorFieldValidator.java:130)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:183)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:94)
com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:89)
com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:208)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:247)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
mil.army.usaac.conap.LogBackFilter.doFilter(LogBackFilter.java:43)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
________________________________
You are seeing this page because development mode is enabled. Development
mode, or devMode, enables extra debugging behaviors and reports to assist
developers. To disable this mode, set:
struts.devMode=false
in your WEB-INF/classes/struts.properties file.
Norris Shelton
Software Engineer
Sun Certified Java 1.1 Programmer
Shelton Consulting, LLC
ICQ# 26487421
AIM NorrisEShelton
YIM norrisshelton
Re: Struts 2.1 validation with annotations
Posted by Musachy Barroso <mu...@gmail.com>.
Please open a jira ticket with as much information as possible.
thanks
musachy
On Fri, Feb 20, 2009 at 12:33 PM, billgloff <bg...@citytechinc.com> wrote:
>
> I have the same exact problem now after upgrading to 2.1.
>
> I have the following model-driven validation defined (which works fine in
> 2.0):
>
> @VisitorFieldValidator(message="")
>
> Now I get the same exception as above when validation fails.
>
> If I add in any kind of text into the message param, it works but looks ugly
> since it spits out that message along with the field message. So I get
> something like this underneath my textfield
>
> "My default messageLast Name cannot be blank or contain invalid characters"
>
> Any ideas about what is going on here?
>
> Thanks.
>
>
>
> sheltonn wrote:
>>
>> It is null. Can you point me in the direction of what I am missing?
>>
>>
>> Norris Shelton
>> Software Engineer
>> Sun Certified Java 1.1 Programmer
>> Shelton Consulting, LLC
>> ICQ# 26487421
>> AIM NorrisEShelton
>> YIM norrisshelton
>>
>>
>>
>>
>> ________________________________
>> From: Musachy Barroso <mu...@gmail.com>
>> To: Struts Users Mailing List <us...@struts.apache.org>
>> Sent: Thursday, February 19, 2009 3:45:35 PM
>> Subject: Re: Struts 2.1 validation with annotations
>>
>> It seems like the default message for that validator is null. Try
>> adding a break point to ValidatorSupport:getMessage and see if the
>> defaultMessage is null.
>>
>> musachy
>>
>> On Thu, Feb 19, 2009 at 3:31 PM, Norris Shelton <no...@yahoo.com>
>> wrote:
>>> validateObject
>>
>>
>>
>> --
>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Struts-2.1-validation-with-annotations-tp22109064p22124783.html
> Sent from the Struts - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts 2.1 validation with annotations
Posted by billgloff <bg...@citytechinc.com>.
I have the same exact problem now after upgrading to 2.1.
I have the following model-driven validation defined (which works fine in
2.0):
@VisitorFieldValidator(message="")
Now I get the same exception as above when validation fails.
If I add in any kind of text into the message param, it works but looks ugly
since it spits out that message along with the field message. So I get
something like this underneath my textfield
"My default messageLast Name cannot be blank or contain invalid characters"
Any ideas about what is going on here?
Thanks.
sheltonn wrote:
>
> It is null. Can you point me in the direction of what I am missing?
>
>
> Norris Shelton
> Software Engineer
> Sun Certified Java 1.1 Programmer
> Shelton Consulting, LLC
> ICQ# 26487421
> AIM NorrisEShelton
> YIM norrisshelton
>
>
>
>
> ________________________________
> From: Musachy Barroso <mu...@gmail.com>
> To: Struts Users Mailing List <us...@struts.apache.org>
> Sent: Thursday, February 19, 2009 3:45:35 PM
> Subject: Re: Struts 2.1 validation with annotations
>
> It seems like the default message for that validator is null. Try
> adding a break point to ValidatorSupport:getMessage and see if the
> defaultMessage is null.
>
> musachy
>
> On Thu, Feb 19, 2009 at 3:31 PM, Norris Shelton <no...@yahoo.com>
> wrote:
>> validateObject
>
>
>
> --
> "Hey you! Would you help me to carry the stone?" Pink Floyd
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
>
--
View this message in context: http://www.nabble.com/Struts-2.1-validation-with-annotations-tp22109064p22124783.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts 2.1 validation with annotations
Posted by Norris Shelton <no...@yahoo.com>.
It is null. Can you point me in the direction of what I am missing?
Norris Shelton
Software Engineer
Sun Certified Java 1.1 Programmer
Shelton Consulting, LLC
ICQ# 26487421
AIM NorrisEShelton
YIM norrisshelton
________________________________
From: Musachy Barroso <mu...@gmail.com>
To: Struts Users Mailing List <us...@struts.apache.org>
Sent: Thursday, February 19, 2009 3:45:35 PM
Subject: Re: Struts 2.1 validation with annotations
It seems like the default message for that validator is null. Try
adding a break point to ValidatorSupport:getMessage and see if the
defaultMessage is null.
musachy
On Thu, Feb 19, 2009 at 3:31 PM, Norris Shelton <no...@yahoo.com> wrote:
> validateObject
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts 2.1 validation with annotations
Posted by Musachy Barroso <mu...@gmail.com>.
It seems like the default message for that validator is null. Try
adding a break point to ValidatorSupport:getMessage and see if the
defaultMessage is null.
musachy
On Thu, Feb 19, 2009 at 3:31 PM, Norris Shelton <no...@yahoo.com> wrote:
> validateObject
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org