Я создал сетку, используя плагин сетки jquery struts2.У меня есть столбец сетки, который является первичным ключом таблицы, который я установил как недоступный для редактирования.Когда я пытаюсь редактировать одну из строк таблицы в сетке, ключевой столбец не передается серверу.Я попытался установить для редактируемого атрибута ключевого столбца значение true, тогда это единственный раз, когда он отправлял ключ на сервер.В витрине идентификатор также установлен как недоступный для редактирования, но сервер получает его в качестве параметра.Пожалуйста, помогите мне в этом.Я мог что-то упустить.
Вот мой код для jsp:
<s:url id="adm201_grid" action="adm201grid">
<s:param name="bomId" value="%{bom.bomId}"/>
</s:url>
<s:url id="adm201_edit_grid" action="adm201editgrid">
<s:param name="bomId" value="%{bom.bomId}"/>
</s:url>
<s:url id="select_material" action="select_material"/>
<sjg:grid
gridModel="gridModel"
caption="Bill of Materials"
href="%{adm201_grid}"
dataType="json"
pager="true"
navigator="true"
navigatorSearchOptions="{multipleSearch:true}"
navigatorEdit="true"
navigatorDelete="true"
rowList="10,15,20"
rowNum="15"
editurl="%{adm201_edit_grid}"
editinline="false"
multiselect="true"
width="500"
navigatorAddOptions="{reloadAfterSubmit:true}"
navigatorEditOptions="{reloadAfterSubmit:false}"
>
<sjg:gridColumn
name="bomMatId"
index="bomMatId"
title="BOM Material ID"/>
<sjg:gridColumn
name="material.materialId"
title="Material"
sortable="true"
editable="true"
edittype="select"
editoptions="{dataUrl:'%{select_material}'}"
formatter="integer"
width="40"/>
<sjg:gridColumn
name="material.descrip"
title="Description"
sortable="true"
width="150"/>
<sjg:gridColumn
name="material.unit"
title="Unit"
sortable="true"
width="30"/>
<sjg:gridColumn
name="quantity"
title="Quantity"
sortable="true"
editable="true"
edittype="text"
formatter="integer"
width="40"/>
</sjg:grid>
Вот мой код для действия редактирования:
public class ADM201EditGrid extends ActionSupport {
private static final long serialVersionUID = 3887575129335166744L;
private String oper;
private BOMMaterials bomMaterials;
private BOMMaterialsDao bomMatDao = new BOMMaterialsDao();
private Long bomId;
private Material material;
private Long quantity;
private Long bomMatId;
// getters and setters
@Override
@Actions( {
@Action(value = "/adm201editgrid", results = {
@Result(name = "success", location = "simpleecho.jsp"),
@Result(name = "input", location = "simpleecho.jsp")
})
})
public String execute() throws Exception {
if (oper.equals("add") || oper.equals("edit")) {
bomMaterials = new BOMMaterials();
bomMaterials.setBomId(bomId);
bomMaterials.setBomMatId(bomMatId);
bomMaterials.setMaterial(material);
bomMaterials.setQuantity(quantity);
bomMatDao.save(bomMaterials, bomMaterials.getBomMatId());
}
return SUCCESS;
}
}
Надеюсь на васнемедленные ответы.Большое спасибо!
~ Мед =)