以下のコードでは、リストとビューを正しく取得していますが、更新中に連結された最初のフィールド rsoCode のみに直面しています。更新フォームでは正しく表示されますが、
デバッグ中に、画面を更新するときに getRsoCode() が 2 回呼び出されることを確認しました (ここで値を変更できます)。
これはJSPコードです
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<form:form action="" method="POST" commandName="updateRso">
<table>
<tr>
<td style="font-weight: bold; font-variant: small-caps;">RSO Code:</td>
<td><form:input path="rsoCode" value="${updateRso.rsoCode}" disabled="disabled"/></td></tr>
<tr><td style="font-weight: bold; font-variant: small-caps;">RSO Description:</td>
<td><form:input path="rsoDescriprion" value="${updateRso.rsoDescriprion}"/></td>
</tr>
<tr>
<td style="font-weight: bold; font-variant: small-caps;">Region Code:</td>
<td><form:input path="regionCode" value="${updateRso.regionCode}"/></td></tr>
<tr><td style="font-weight: bold; font-variant: small-caps;">Region Description:</td>
<td><form:input path="regiondescription" value="${updateRso.regiondescription}"/></td>
</tr>
<tr>
<td colspan="10" align="center"> <input type="submit" value="Submit"/> </td>
</tr>
</table>
</form:form>
コントローラーコード
@Controller
public class ListRsoController {
private static final Logger logger = LoggerFactory.getLogger(ListRsoController.class);
@ModelAttribute("updateRso")
public ListRso getListRso()
{
ListRso updateRso = new ListRso();
return updateRso;
}
@RequestMapping(value="listrso")
public String listAllRso(ModelMap model) throws Exception{
ListRsoDao listDao = new ListRsoDao();
model.addAttribute("rsos", listDao.getList());
return "listrso/view";
}
@RequestMapping(value="getRsoDetails")
public String getRso(@RequestParam("rsoCode")String rsoCode, ModelMap model,HttpServletRequest req) throws Exception{
ListRsoDao lstdto = new ListRsoDao();
Object obj = lstdto.getRsoCode(rsoCode);
model.addAttribute("savedClass", obj);
return "listrso/viewdetails";
}
@RequestMapping(value="updateRsoDetails", method=RequestMethod.GET)
public String updateRso(@RequestParam("rsoCode")String rsoCode, ModelMap model,HttpServletRequest req) throws Exception{
ListRsoDao lstdto = new ListRsoDao();
Object obj = lstdto.getRsoCode(rsoCode);
model.addAttribute("updateRso", obj);
return "listrso/updatedetails";
}
@RequestMapping(value="deleteRsoDetails")
public String deleteRso(@RequestParam("rsoCode")ListRso rsoCode, ModelMap model,HttpServletRequest req) throws Exception{
ListRsoDao lstdto = new ListRsoDao();
lstdto.deleteRso(rsoCode);
//model.addAttribute("savedClass", obj);
return "listrso/deleteSuccess";
}
@RequestMapping(method = RequestMethod.POST, value="updateRsoDetails")
protected String onSubmit( @ModelAttribute("updateRso") ListRso rsoCommand, ModelMap model ) throws Exception
{
model.clear();
new ListRsoDao().updateRso(rsoCommand);
model.addAttribute("savedClass", rsoCommand);
return "listrso/view";
}
}
ジャバビーン
public class ListRso {
private String rsoCode;
private String rsoDescriprion;
private String regionCode;
private String regiondescription;
public ListRso(String rsoCode, String rsoDescriprion, String regionCode,
String regiondescription) {
super();
this.rsoCode = rsoCode;
this.rsoDescriprion = rsoDescriprion;
this.regionCode = regionCode;
this.regiondescription = regiondescription;
}
public ListRso(String rsoCode)
{
this.rsoCode = rsoCode;
}
public ListRso() {
// TODO Auto-generated constructor stub
}
public String getRsoCode() {
return rsoCode;
}
public void setRsoCode(String rsoCode) {
this.rsoCode = rsoCode;
}
public String getRsoDescriprion() {
return rsoDescriprion;
}
public void setRsoDescriprion(String rsoDescriprion) {
this.rsoDescriprion = rsoDescriprion;
}
public String getRegionCode() {
return regionCode;
}
public void setRegionCode(String regionCode) {
this.regionCode = regionCode;
}
public String getRegiondescription() {
return regiondescription;
}
public void setRegiondescription(String regiondescription) {
this.regiondescription = regiondescription;
}
}