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]