I am trying to assign values to object fields. Here I am assigning more than one instance of object from jsp page. I am setting these values to Set
.
<s:if test="DDActionList.size>0">
<s:iterator value="DDActionList" status="rowstatus">
<div class="box">
<span class="label">Check No</span>
<span class="ib">
<s:hidden name="supplierPaidChecks[%{#rowstatus.index}].id" id="id">
<s:param name="value">
<s:property value="id"/>
</s:param>
</s:hidden>
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].checkNo" id="checkNo">
<s:param name="value">
<s:property value="checkNo"/>
</s:param>
</s:textfield>
</span>
</div>
<div class="box">
<span class="label">Dated</span>
<span class="ib">
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].dated" id="dated">
<s:param name="value">
<s:property value="dated"/>
</s:param>
</s:textfield>
</span>
</div>
<div class="box">
<span class="label">Payable At</span>
<span class="ib">
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].payableAt" id="payableAt">
<s:param name="value">
<s:property value="payableAt"/>
</s:param>
</s:textfield>
</span>
</div>
<div class="box">
<span class="label">Paid To Acc NO</span>
<span class="ib">
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].paidToAccNo" id="paidToAccNo">
<s:param name="value">
<s:property value="paidToAccNo"/>
</s:param>
</s:textfield>
</span>
</div>
<div class="box">
<span class="label">To Bank</span>
<span class="ib">
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].paidToBank" id="paidToBank">
<s:param name="value">
<s:property value="paidToBank"/>
</s:param>
</s:textfield>
</span>
</div>
<div class="box">
<span class="label">To Branch</span>
<span class="ib">
<s:textfield name="supplierPaidChecks[%{#rowstatus.index}].paidToBranch" id="paidToBranch">
<s:param name="value">
<s:property value="paidToBranch"/>
</s:param>
</s:textfield>
</span>
</div>
</s:iterator>
</s:if>
My Action Class
public class hbmCashAction extends ActionSupport implements ModelDriven<SupplierPaidDetails> {
SupplierPaidDetails spa = new SupplierPaidDetails();
public SupplierPaidDetails getSpa() {
return spa;
}
public void setSpa(SupplierPaidDetails spa) {
this.spa = spa;
}
public String update() {
System.out.println("--------");
Set <SupplierPaidCheck> ax= spa.getSupplierPaidChecks();
for (SupplierPaidCheck ss : ax) {
System.out.println(ss.getId()+" "+ss.getPaidToAccNo()+" "+ss.getPayableAt());
}
System.out.println("--------");
return SUCCESS;
}
@Override
public SupplierPaidDetails getModel() {
return spa;
}
}
SupplierPaidDetails class
public class SupplierPaidDetails implements java.io.Serializable {
private Long id;
private SupplierPaymentDetails supplierPaymentDetails;
private Float amount;
private String paymentMode;
private Date paymentDate;
private Date addDate;
private String status;
private Set supplierPaidOnlines = new HashSet(0);
private Set supplierPaidCashes = new HashSet(0);
private Set supplierPaidChecks = new HashSet(0);
//getter and setter
}
SupplierPaidChecks
public class SupplierPaidCheck implements java.io.Serializable {
private Long id;
private SupplierPaidDetails supplierPaidDetails;
private long checkNo;
private Date dated;
private String payableAt;
private String paidToAccNo;
private String paidToBank;
private String paidToBranch;
private Date addDate;
private Float amount;
private String status;
// getter and setter
}
I am following this link to get set values from jsp to action
I am getting following errors
May 05, 2014 3:38:54 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
WARNING: Error setting expression 'supplierPaidChecks[0].checkNo' with value '[Ljava.lang.String;@1ac1423'
ognl.NoSuchPropertyException: java.util.HashSet.0
at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:68)
at com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty(XWorkCollectionPropertyAccessor.java:93)
at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2317)
at ognl.ASTProperty.getValueBody(ASTProperty.java:114)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.ASTChain.setValueBody(ASTChain.java:222)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:234)
at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:183)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:170)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:148)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:318)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:231)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)