Я хочу реализовать концепцию сеанса (HTTP-запрос) в моем Springbootproject, но он дает эту ошибку - PullRequest
0 голосов
/ 24 октября 2018

Ошибка возникает при регистрации пользователя

Ошибка Whitelabel

  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: ""

Существует две формы регистрации и офиса

Regitrstion (пользователь)

@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

Office

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

JSP страницы Office для идентификатора

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

/ Концепция проекта /

После регистрации пользователя (значения будут сохранены в БД), его идентификатор должен автоматически заполняться на странице бланка офиса и сохраняться в базе данных с помощьюКонцепция сеанса, но я получаю эту ошибку, пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

В решении было изменено значение int на Integer как в пользовательском, так и в офисном форматах, и было добавлено `@GeneratedValue (стратегии = GenerationType.IDENTITY) для идентификатора пользователя.

  @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

Office

  @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";
  }
0 голосов
/ 25 октября 2018

В соответствии с ошибкой

 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 id до Integer id.И я думаю, что в пост-контроллере в этом утверждении session.setAttribute("id", id); значение id не устанавливается в любом случае.Поэтому я предлагаю вам заменить session.setAttribute("id", id); на session.setAttribute("id", user.getId());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...