Spring属性连接属性值后跟逗号

时间:2013-04-10 09:13:33

标签: jsp spring-mvc

在下面的代码中,我正在调整列表并正确查看,但在更新时我只面对第一个字段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 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

最近我遇到了类似的问题 问题的根本原因是我定义了相同的路径变量两次,一个在屏幕上可见,另一个被隐藏。提交表单时,它用commqnd来表示具有相同路径/名称的值。 要解决此问题,您已经删除了隐藏的内容。

希望此信息有帮助