我可以将整数值附加到stringbuilder吗?

时间:2014-08-02 06:30:20

标签: java rest url spring-mvc stringbuffer

我写了一个控制器正在关注

 @RequestMapping(value = "/update/{roleId}", method = {RequestMethod.POST, RequestMethod.PUT})
 public String updateRole(@PathVariable Integer roleId,@Valid UserRoleResource roleDTO,  
 ModelMap  modelMap) {
    UserRole userRoleforduplicate = userRoleService.findByRoleName(roleDTO.getRoleName());

    if(userRoleforduplicate==null)
    {
        UserRole userRole =   
    mapper.updateUserRoleFrom(roleDTO,userRoleService.findById(roleId));    
        userRoleService.update(userRole);
        modelMap.addAttribute("user_role", userRole);
        modelMap.addAttribute("roleId", userRole.getRoleId());
        this.succes="redirect:/roles/listroles";
    }
    else
    {
        Object s="Role Name Already Exist";
        modelMap.addAttribute("aslam", s);
        this.succes="redirect:/roles/updateLoadDetails/roleId";     
        }
    return succes;
}

其中else部分无法正常工作,因为变量succes是一个字符串且roleId是一个Integer,所以它抛出以下错误

 Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested  
 exception is java.lang.NumberFormatException: For input string: "roleId"

对于这个问题,我可以将roleId附加到StringBuilder吗?比如

 String s1="redirect:/roles/updateLoadDetails/";
 Integer i2=roleId;
 stringbuilder.append(s1); 
 stringbuilder.append(i2);
 return stringbuilder; 

或者将整数值传递给字符串的任何其他选项? PLZ任何人的帮助

3 个答案:

答案 0 :(得分:1)

而不是代码

String s1="redirect:/roles/updateLoadDetails/";
 Integer i2=roleId;
 stringbuilder.append(s1); 
 stringbuilder.append(i2);

您也可以使用此代码,以减少代码行数

stringbuilder.append("redirect:/roles/updateLoadDetails/").appnd(""+roleId);

答案 1 :(得分:0)

您可以像这样使用String.format

String s = String.format("redirect:/roles/updateLoadDetails/%d", roleId);

答案 2 :(得分:-1)

替换

stringbuilder.append(i2);

使用

stringbuilder.append(""+i2);