Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在spring引导中执行编辑操作_Java_Spring_Spring Boot - Fatal编程技术网

Java 无法在spring引导中执行编辑操作

Java 无法在spring引导中执行编辑操作,java,spring,spring-boot,Java,Spring,Spring Boot,我想在传递id并将用户对象返回控制器时编辑我的用户类,但它遇到了错误,例如“出现了意外错误(type=Internal Server error,status=500)”。它告诉我将类型转换为可选。我不知道该怎么办 用户服务类 public User editMyUser(int id) { return userRepository.findById(id); } 控制器类 @RequestMapping("/edit-user") public String editUser(@R

我想在传递id并将用户对象返回控制器时编辑我的用户类,但它遇到了错误,例如“出现了意外错误(type=Internal Server error,status=500)”。它告诉我将类型转换为可选。我不知道该怎么办

用户服务类

public User editMyUser(int id) {
    return userRepository.findById(id);
}
控制器类

@RequestMapping("/edit-user")
public String editUser(@RequestParam int id, HttpServletRequest request) {
    userService.deleteMyUser(id);

    request.setAttribute("user", userService.editMyUser(id));
    request.setAttribute("mode", "MODE_UPDATE");
    return "welcome";
}

我在这里让您了解正在工作的rest服务接口的配置

@Api(value = "empleados", description = "the empleados API")
public interface EmpleadosApi {

    @ApiOperation(value = "Buscar empleados", notes = "", response = ResultadoBusquedaEmpleado.class, tags = {})
    @ApiResponses(value = {
        @ApiResponse(code = 200, message = "Búsqueda de empleados", response = ResultadoBusquedaEmpleado.class) })

    @RequestMapping(value = "/empleados", method = RequestMethod.GET)
    ResponseEntity<ResultadoBusquedaEmpleado> empleadosGet(
            @ApiParam(value = "Nombre de empleado") @RequestParam(value = "nombre", required = false) String nombre)
}
@Api(value=“empleados”,description=“empleados Api”)
公共接口EmployadOSAPI{
@ApiOperation(value=“Buscar empleados”,notes=”“,response=ResultadoBusquedaEmpleado.class,tags={})
@ApiResponses(值={
@ApiResponse(code=200,message=“Búsqueda de empleados”,response=ResultadoBusquedaEmpleado.class)})
@RequestMapping(value=“/empleados”,method=RequestMethod.GET)
回应就业(
@ApiParam(value=“Nombre de empleado”)@RequestParam(value=“Nombre”,required=false)字符串Nombre)
}

这就是新版本Spring中的
findById
的样子(根据文档):

使用
Optional
时,您需要使用
get()
来获取实际的用户实例:

userService.editMyUser(id).get()
但首先,您应该检查该可选项是否实际包含用户:

Optional<User> optionalUser = userService.editMyUser(id);

if (optionalUser.isPresent()) {
    User user = optionalUser.get();
    // do whatever you need
} else {
   // means user is null - nothing found for ID
   // act accordingly
}
可选optionalUser=userService.editMyUser(id);
if(optionalUser.isPresent()){
User=optionalUser.get();
//你需要什么就做什么
}否则{
//表示用户为空-找不到ID的任何内容
//相应地行动
}
Spring还提供了一个新的功能。可能有用


快乐编码:)

确切的错误堆栈跟踪是什么?我尝试了这个功能,它显示了这样的错误“javax.el.PropertyNotFoundException:Property[id]在类型[java.util.Optional]上找不到”。我扩展了我的答案,也许它会有所帮助。另外一件事是,你调用
userService.deleteMyUser(id)第一行,如果操作正确-下一行执行
request.setAttribute(“user”,userService.editMyUser(id))
意味着
userService.editMyUser
将在我猜的所有时间返回null。因为您先删除,然后再尝试编辑,这有点奇怪。
“javax.el.PropertyNotFoundException
这意味着您在页面上使用的用户对象带有el表达式,我猜是smth.like 35;{user.id}在某个地方。用if/else再次检查我的答案,这是可选的-应该会有帮助。thnk u john sryy我犯了一个愚蠢的错误,这很有效
request.setAttribute("user", userService.editMyUser(id));
userService.editMyUser(id).get()
Optional<User> optionalUser = userService.editMyUser(id);

if (optionalUser.isPresent()) {
    User user = optionalUser.get();
    // do whatever you need
} else {
   // means user is null - nothing found for ID
   // act accordingly
}