Create Table like below code. Do changes as your requirement for property name or label name but logic will be like below.
<%
int counter=0;
%>
<table>
<logic:iterate id="proditem" name="form" property="productList" indexId="i">
<%int count= counter++; request.setAttribute("count",count);%>
<tr>
<td TD class="row<%= i % 2 %>"> <label id="partNumber_<%=count%>">
<bean:write name="proditem" property="partNumber"/></label>
</td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="maturityCode"/></td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="distibutorQty"/></td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="leadTime"/></td>
<td TD class="row<%= i % 2 %>"> <label id="price_<%=count%>"><bean:write name="proditem" property="price"/></label></td>
<td TD class="row<%= i % 2 %>">
<input type="text" size="6" value="<bean:write name="proditem" property="discount"/>" id="discount_<%=count%>" onchange="calculateDiscountedPrice(<%=count%>)"></input>
</td>
<td TD class="row<%= i % 2 %>"> <label id="discountedPrice_<%=count%>"><bean:write name="proditem" property="discountedPrice"/></label>
</td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="marketingStatus"/> </td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="publishedFlag"/></td>
<td TD class="row<%= i % 2 %>"> <bean:write name="proditem" property="minOrderQty"/></td>
<td TD class="row<%= i % 2 %>">
<html:select name="proditem" property="removeFromEstore" styleId='<%="removeFromEstore_"+count%>' onchange="selectRemoveFromEstore(this)">
<html:options collection="flags" property="value" labelProperty="label"/>
</html:select>
</td>
</tr>
</logic:iterate>
</table>
Java Script To Get data from above table is as below:
var partNumberDiscountDiscountedPrice="";
var validationFail=false;
function calculateDiscountedPrice(counter){
var discountVar="discount_"+counter;
var discountValue = document.getElementById(discountVar).value;
if (discountValue.length>0) {
var index = discountValue.search(/[^0-9\.]/);
if (index != -1) {
discountVar.selectionStart = discountVar.selectionEnd = index;
alert("Invalid characters");
validationFail=true;
return false;
}
var test = Number(discountValue.match(/\d+/)[0]);
if(test >=0 && test <= 100){
}
else{
alert("Discount Value Should be numeric and between 1 to 100");
validationFail=true;
return false;
}
}else{
alert("Discount Value Should be numeric and between 1 to 100");
validationFail=true;
return false;
}
var priceVar="price_"+counter;
var actualPrice = document.getElementById(priceVar).innerHTML;
var partNumberVar="partNumber_"+counter;
var partNumberValue = document.getElementById(partNumberVar).innerHTML;
var discountedPriceValue=actualPrice-(actualPrice*discountValue/100);
var discountedPriceVar="discountedPrice_"+counter;
document.getElementById(discountedPriceVar).innerHTML=discountedPriceValue;
if(discountValue==""||discountValue=="undefined"||discountValue==null){
document.getElementById(discountedPriceVar).innerHTML="";
}
var localAllText= "#"+partNumberValue+":"+actualPrice+"@"+discountValue;
partNumberDiscountDiscountedPrice=partNumberDiscountDiscountedPrice+localAllText;
}
var partNumberRemoveFromEstore="";
function selectRemoveFromEstore(selectObjectElement){
var index=selectObjectElement.options.selectedIndex;
var selectObjectElementIdVar = selectObjectElement.id;
var count=selectObjectElementIdVar.split("_");
var partNumberVar="partNumber_"+count[1];
var partNumberValue = document.getElementById(partNumberVar).innerHTML;
var selectValue="";
if(index==1){
selectValue="N"
}else{
selectValue="Y"
}
var localAllText = "#"+partNumberValue+":"+selectValue;
partNumberRemoveFromEstore=partNumberRemoveFromEstore+localAllText;
}