Hi,

I'm using

      struts-core-2.0.8 j4 distribution,
      struts2-spring-plugin-j4-2.0.6,
      and corresponding j4 distribution jars,


I have an action with several methods. I use each method as an action mapping 
and I want
to use different validation.xml files for each action mapping.

In the documentation, AFAIU, it says that using the
[actionname]_[methodname]-validation.xml in the same package with the action 
class should
work to accomplish this type of validation. But I could't succeed to make the 
validation
work.

Anybody has an idea? Thanks for any replies.

My configuration follows:

stockin.jsp

<s:form method="POST" namespace="secure">
      <s:if test="%{documentDetail == null || documentDetail.size == 0}">
            <s:textfield label="documentNumber" required="true"
                  name="documentNumber" />
            <s:datetimepicker required="true" label="invoiceDate" 
displayWeeks="5"
                  name="invoiceDate" displayFormat="dd.MM.yyyy" />
            <s:submit label="Retrieve Invoice" value="Retrieve Invoice"
                  action="Stockin_retrieveInvoice" />
      </s:if>
      <s:actionerror label="errors" />
</s:form>

Stockin_retrieveInvoice-validation.xml :

<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd";>
<validators>
      <field name="invoiceDate">
            <field-validator type="required">
                  <message>invoiceDate required!</message>
            </field-validator>
      </field>
      <field name="documentNumber">
            <field-validator type="requiredstring">
                  <message>documentNumber required!</message>
            </field-validator>
      </field>
</validators>

 struts.xml

<action name="Stockin_retrieveInvoice" class="Stockin"
                  method="retrieveInvoice">
                  <interceptor-ref name="scope">
                        <param name="session">documentDetail</param>
                        <param name="autoCreateSession">true</param>
                  </interceptor-ref>
                  <interceptor-ref name="webValidationStack"></interceptor-ref>
                  <result name="input">/WEB-INF/pages/jsp/stockin.jsp</result>
                  <result name="success">
                        /WEB-INF/pages/jsp/stockin.jsp
                  </result>
            </action>

bean -config in spring.xml

<bean name="Stockin"
            class="com.cci.fefo2.web.s2.Stockin" scope="prototype">
</bean>

and Stockin.java

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.cci.fefo2.service.ArticleMasterService;
import com.cci.fefo2.service.StockInService;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @author bduman
 *
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class Stockin extends ActionSupport{
      private DateFormat df = new SimpleDateFormat("ddMMyyyy");

      private String documentNumber;

      private Date invoiceDate;

      private List salesDetail;

      private List documentDetail;

      private StockInService stockInService;

      private ArticleMasterService articleMasterService;



      public String input() throws Exception {
            System.out.println("Stockin.input()");
            invoiceDate = df.parse("02052007");
            documentNumber = "01F28826842";
            documentDetail = null;
            salesDetail = null;
            return Action.INPUT;
      }
      public String forward() throws Exception{
            return Action.SUCCESS;
      }

      public String detail() throws Exception{
            return "detail";
      }

      public String cancel() throws Exception {
            documentDetail = null;
            return Action.INPUT;
      }

      public String retrieveInvoice() throws Exception {
            System.out.println("Stockin.retrieveInvoice()");
            documentDetail = stockInService.getInvoiceDetails("01", "3100007",
                        "2007", "05", documentNumber, invoiceDate);
            return Action.SUCCESS;
      }

      public String save() throws Exception {
            System.out.println("Stockin.doSave()");
            //TODO save stock in to DB
            return Action.SUCCESS;
      }

      /*
       * (non-Javadoc)
       *
       * @see com.opensymphony.xwork2.ActionSupport#execute()
       */
      public String execute() throws Exception {
            System.out.println("Stockin.execute()");
            return super.execute();
      }

      /**
       * @return Returns the documentDetail.
       */
      public List getDocumentDetail() {
            return documentDetail;
      }

      /**
       * @param documentDetail
       *            The documentDetail to set.
       */
      public void setDocumentDetail(List documentDetail) {
            this.documentDetail = documentDetail;
      }

      /**
       * @return Returns the documentNumber.
       */
      public String getDocumentNumber() {
            return documentNumber;
      }

      /**
       * @param documentNumber
       *            The documentNumber to set.
       */
      public void setDocumentNumber(String documentNumber) {
            this.documentNumber = documentNumber;
      }


      /**
       * @return Returns the stockInService.
       */
      public StockInService getStockInService() {
            return stockInService;
      }
      /**
       * @param stockInService The stockInService to set.
       */
      public void setStockInService(StockInService stockInService) {
            this.stockInService = stockInService;
      }
      /**
       * @return Returns the salesDetail.
       */
      public List getSalesDetail() {
            return salesDetail;
      }
      /**
       * @param salesDetail The salesDetail to set.
       */
      public void setSalesDetail(List salesDetail) {
            this.salesDetail = salesDetail;
      }
      /**
       * @return Returns the invoiceDate.
       */
      public Date getInvoiceDate() {
            return invoiceDate;
      }
      /**
       * @param invoiceDate The invoiceDate to set.
       */
      public void setInvoiceDate(Date stockInDate) {
            this.invoiceDate = stockInDate;
      }
      /**
       * @return Returns the articleMasterService.
       */
      public ArticleMasterService getArticleMasterService() {
            return articleMasterService;
      }
      /**
       * @param articleMasterService The articleMasterService to set.
       */
      public void setArticleMasterService(
                  ArticleMasterService articleMasterService) {
            this.articleMasterService = articleMasterService;
      }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to