私は Spring MVC です。私のコントローラー クラスは AbstractWizardFormController クラスを拡張します。
私のコマンド オブジェクト UpdateStockBean には List.My コマンド クラスが次のように含まれています
public class UpdateStockBean {
@SuppressWarnings("rawtypes")
private List dimensionStones =
LazyList.decorate(new ArrayList(),FactoryUtils.instantiateFactory(DimensionStoneBean.class));
String productiondate;
long openbalance;
public UpdateStockBean() {
super();
}
@SuppressWarnings("rawtypes")
public List getDimensionStones() {
return dimensionStones;
}
public void setDimensionStones(@SuppressWarnings("rawtypes") List dimensionStones) {
this.dimensionStones = dimensionStones;
}
}
JSP のフィールドにデータを入力するために、フォーム バッキング オブジェクトを使用しています。以下のようになります。
protected Object formBackingObject(HttpServletRequest request)throws Exception {
UpdateStockBean updateStockBean=new UpdateStockBean();
updateStockBean.setDimensionStones(dimensionStoneBeans);//here dimensionStoneBeans is a list
return updateStockBean;
}
私の問題は私のjspにあります
<c:forEach items="${updateStockBean.dimensionStones}" var="DimensionStones" varStatus="i" begin="0">
<tr class="dimensionStone">
<td><form:input path="dimensionStones[${i.index}].stoneNo" id="stoneNo${i.index}" cssClass="controlStock"/></td>
<td><form:input path="dimensionStones[${i.index}].length" id="length${i.index}" cssClass="controlStock"/></td>
<td><form:input path="dimensionStones[${i.index}].breadth" id="breadth${i.index}" cssClass="controlStock"/></td>
<td><form:input path="dimensionStones[${i.index}].height" id="height${i.index}" cssClass="controlStock"/></td>
<td><form:input path="dimensionStones[${i.index}].dimension" id="dimension${i.index}" cssClass="controlStock"/></td>
<td><form:checkbox path="dimensionStones[${i.index}].isIssued" id="isIssued${i.index}" cssClass="check"/></td>
<td><a href="#" class="removeDimensionStone"><img src="images/plus3.png" width="20" height="20" title="Remove Dimension Stone"/></a></td>
</tr>
</c:forEach>
<c:if test="${empty updateStockBean.dimensionStones}">
<tr class="dimensionStone defaultRow">
<td><input type="text" name="dimensionStones[].stoneNo" value="" Class="controlStock"/></td>
<td><input type="text" name="dimensionStones[].length" value="" Class="controlStock"/></td>
<td><input type="text" name="dimensionStones[].breadth" value="" Class="controlStock"/></td>
<td><input type="text" name="dimensionStones[].height" value="" Class="controlStock"/></td>
<td><input type="text" name="dimensionStones[].dimension" value="" Class="controlStock"/></td>
<td><input type="checkbox" name="dimensionStones[].isIssued" value="Yes" Class="controlStock"/></td>
<td><a href="#" class="removeDimensionStone"><img src="images/cross1.jpg" width="20" height="20" title="Remove Dimension Stone"/></a></td>
</tr>
</c:if>
${updateStockBean.dimensionStones} が空です。jsp でformBacking() メソッドによって入力されたupdateStockBeanオブジェクトを参照する方法。問題を解決してください
サーブレット conf を以下に示します
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="updateStock.nic">UpdateStockController</prop>
<props>
</property>
</bean>
<bean id="UpdateStockController" class="mams.web.UpdateStockController">
<property name="commandName"><value>updateStock</value></property>
<property name="commandClass"><value>nic.mams.web.beans.UpdateStockBean</value>
</property>
<property name="stockRegisterService" ref="StockRegisterService"></property>
<property name="dimensionStoneService" ref="DimensionStoneService"></property>
<property name="validator" ref="UpdateStockValidator"></property>
<property name="pages">
<list>
<value>addOrEditOpenDimensionStone</value> //this value corresponds to my jsp
</list>
</property>
</bean>