0 Replies Latest reply on Oct 28, 2008 10:44 AM by timmmm

    Struts 2 protlet plugin. Validation errors.

    timmmm

      Hi.
      I have some errors while validating my form.

      struts.xml

      <package name="view" extends="struts-portlet-default" namespace="/view">
      
       <action name="AddClientRequestAction_*" method="{1}" class="autopay.portlet.action.AddClientRequestAction">
       <result name="input">/WEB-INF/jsp/view/addRequest.jsp</result>
       <result name="source">/WEB-INF/jsp/view/addRequest.jsp</result>
       <result>/WEB-INF/jsp/view/ok.jsp</result>
       </action>
       </package>
      

      AddClientRequestAction

      public class AddClientRequestAction extends ActionSupport {
       private String a = "aaaaaaaaaaaaa";
      
       @Override
       public String execute() throws Exception {
       System.out.println("a: " + a);
      
      
       if (isInvalid(a)) return INPUT;
       addActionMessage("my action message");
       return SUCCESS;
       }
      
       public String getA() {
       return a;
       }
      
       public void setA(String a) {
       this.a = a;
       }
      
       public void validate() {
       System.out.println("AddClientRequestAction - VALIDATE!!!");
       super.validate();
       }
      
       private boolean isInvalid(String value) {
       return (value == null || value.length() == 0);
       }
      }
      

      Exception

      2008-10-27 18:56:52,452 ERROR [org.jboss.portal.core.model.portal.control.page.DefaultPageControlPolicy] Rendering portlet window produced an error
      javax.portlet.PortletException: Error executing action renderDirect....

      Caused by: javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.NullPointerException
      at org.jboss.portal.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:91)
      ...
      interesting part

      Caused by: java.lang.NullPointerException
      at java.text.MessageFormat.applyPattern(MessageFormat.java:422)
      at java.text.MessageFormat.(MessageFormat.java:350)
      at com.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:70)
      at com.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:111)
      at org.apache.struts2.util.TextProviderHelper.getText(TextProviderHelper.java:62)
      at org.apache.struts2.util.TextProviderHelper.getText(TextProviderHelper.java:105)
      at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:631)
      at org.apache.struts2.components.UIBean.end(UIBean.java:509)
      at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
      at org.apache.jsp.WEB_002dINF.jsp.view.addRequest_jsp._jspx_meth_s_005ftextfield_005f0(addRequest_jsp.java:200)
      at org.apache.jsp.WEB_002dINF.jsp.view.addRequest_jsp._jspx_meth_s_005fform_005f0(addRequest_jsp.java:132)
      at org.apache.jsp.WEB_002dINF.jsp.view.addRequest_jsp._jspService(addRequest_jsp.java:73)

      Extract from line 422 of MessageFormat.java as it is in Java 1.6.0_07:

      for (int i = 0; i < pattern.length(); ++i) {

      It seems that, struts 2 validator can't find message patterns. But i tried a great numbers of message mapping, and with out localized messages only addErrorMessage("error") method.

      Could anyone help me with this error?
      Thanks.