2013-04-10 84 views
1

在下面的代碼,我正確geeting列表和圖,但是在更新我面臨例如級聯僅第一場rsoCode如果我的rsoCode是NH43然後它會涉及到控制器NH43,NH43。在更新的形式,它會顯示正確,但是當它涉及到彈簧屬性串聯屬性的值,隨後由逗號

雖然調試我已經觀察到,getRsoCode()調用的兩倍,而即將更新屏幕(在這裏我們可以更改值)。

這是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">&nbsp;&nbsp;&nbsp;<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"; 
    } 

} 

的Java Bean

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; 
    } 


} 

回答

2

沒有爲你的形式不採取行動這將導致春季標籤do weird stuff。 這:

<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" disabled="disabled"/></td> 
+0

上面我已經嘗試過的解決方案但它仍然是行不通的。雖然調試運行我觀察到,getRsoCode所謂的兩倍,而redering更新的詳細信息屏幕我指的是屏幕,一個可以改變 – Kamahire 2013-04-10 09:49:12

+0

在名單我已經看到在頁面上查看源代碼的數據值,它是填充在一次,但更新頁它是填充兩次,以及它如何添加逗號和連接這些值 – Kamahire 2013-04-10 09:57:54

+0

@Kamahire ListRsoDao返回什麼?您需要將所有表單元素更改爲僅引用路徑。 – NimChimpsky 2013-04-10 10:03:27