【问题标题】:I want to implement session(HTTP request)concept in my Springbootproject but its giving this error我想在我的 Springbootproject 中实现会话(HTTP 请求)概念,但它给出了这个错误
【发布时间】:2018-10-30 20:26:46
【问题描述】:

用户注册时出现错误

白标错误

  This application has no explicit mapping for /error, so you are 
  seeing this as a fallback.
  Wed Oct 24 16:46:26 IST 2018
  There was an unexpected error (type=Bad Request, status=400).
  Failed to convert value of type 'java.lang.String' to required type 
  'int'; nested exception is java.lang.NumberFormatException: For input string: ""

有注册和办公两种形式

注册(用户)

@Entity
@Table(name="mytable")
public class User {

@Id
private int id;  //Primary key
private String name;
private String mobile;
private String email;
private String college;
private String branch;
private String semester;
private String address;
private String internship;
private String batch;
private String startdate;
private String enddate;
//getters and setters

办公室

@Entity
@Table(name="officeinfo")
public class Office {

@Id
private int sno;
private String batchno;
private int  id;  
private String fees;
private String reciptno;
private String trainer;
//getters and setters

注册中的会话实现,以便填充 id 值(办公室)

 @PostMapping("/save-user")
 public String registerUser(@ModelAttribute User user, BindingResult 
 bindingResult, HttpServletRequest request,HttpSession 
 session,@RequestParam("id") int id) {
    userService.saveMyUser(user);
   session.setAttribute("id", id);
    int x = user.getId();
   request.setAttribute("mode", "MODE_HOME");
    return "welcomepage";
}

用于 id 的 Office 页面 JSP

    <div class="form-group">
    <label class="control-label col-md-3">Candidate 
        Registe rNumber</label>
    <div class="col-md-5">
        <input type="text" class="form-control                       
    placeholder="Enter Register Number" 
         name="id" required value="${sessionScope.id }" />
     </div>
    </div>

/项目概念/

一旦用户注册(值将存储在 DB 中),他的 id 应该会自动填写到 office 表单页面并使用 session 概念保存在数据库中,但我收到此错误,请帮助!

【问题讨论】:

  • 能否将 HTTP 请求添加到问题中?
  • 在代码或问题中?
  • 回答问题。

标签: mysql jsp spring-boot session


【解决方案1】:

根据错误

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

您需要整数值,但应用程序获取空字符串值。这就是为什么它会出错。我会建议你使用Integer 类而不是int。我的意思是int idInteger id。而且我认为在此语句中的后控制器session.setAttribute("id", id); id 的值无论如何都没有设置。所以我建议你把session.setAttribute("id", id);换成session.setAttribute("id", user.getId());

【讨论】:

  • 嗨,我应该将哪个 id(用户或办公室)更改为整数?
  • @ShashankNaik 在您的每个领域课程中。我的意思是OfficeUser
  • 感谢您的帮助!
【解决方案2】:

解决方案是在 User 和 Office 中将 int 更改为 Integer 并包括 ` @GeneratedValue(strategy = GenerationType.IDENTITY) 中的 id 用户。

  @Entity
  @Table(name="mytable")
  public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;  //Primary key
  private String name;
  private String mobile;
  private String email;
  private String college;
  private String branch;
  private String semester;
  private String address;
  private String internship;
  private String batch;
  private String startdate;
  private String enddate;
  //getters and setters

办公室

  @Entity
  @Table(name="officeinfo")
  public class Office {
  @Id
  private int sno;
  private String batchno;
  private Integer  id;  
  private String fees;
  private String reciptno;
  private String trainer;
  //getters and setters`

在控制器中

  @PostMapping("/save-user")
  public String registerUser(@ModelAttribute User user, BindingResult 
  bindingResult, HttpServletRequest request,HttpSession 
  session,@RequestParam("id") Integer id) {
  userService.saveMyUser(user);
  session.setAttribute("id", id);
  int x = user.getId();
  request.setAttribute("mode", "MODE_HOME");
  return "welcomepage";
  }

【讨论】:

    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多