私はjavaを初めて使っています。最初のJava Springプロジェクトを作成し、次のコードを追加しましたが、エラーがあるようです。implementsクラスのJavaヌルポイント例外?
これは私が試みたものです。
MyController.java
package org.jpanel.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jpanel.service.User;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import org.jpanel.service.*;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MyController {
public User user;
@RequestMapping(value="/login",method=RequestMethod.GET)
public ModelAndView login() {
String message = "Username";
return new ModelAndView("login", "message", message);
}
@RequestMapping(value="/login",method=RequestMethod.POST)
public ModelAndView postLogin(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("log");
String password = request.getParameter("pwd");
boolean UserExists;
if(username != "" || password != "") {
UserExists = user.isValidUser(username, password);
} else {
UserExists = false;
}
if(UserExists != false) {
return new ModelAndView("login", "message", "Posted");
} else {
return new ModelAndView("login", "message", "<div class = 'notification jp-login-failed'>Username or Password Incorrect</div>");
}
}
}
User.java
package org.jpanel.service;
public interface User {
public boolean isValidUser(String username, String password);
public int createUser(String username, String password);
}
UserActions.java
package org.jpanel.service.impl;
import org.jpanel.service.User;
import org.springframework.stereotype.Repository;
@Repository
public class UserActions implements User {
@Override
public boolean isValidUser(String username, String password) {
System.out.println(username);
if(username != "" || password != "") {
return true;
} else {
return false;
}
}
@Override
public int createUser(String username, String password) {
// TODO Auto-generated method stub
return 0;
}
}
Iをコードを実行すると、ログインはうまくいくように見えますが、フォームを嫌うとエラーが発生します。
java.lang.NullPointerException
org.jpanel.controller.MyController.postLogin(MyController.java:37)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
私はライン37の前username
とpassword
をprintlnをするときには、コンソールに表示されているように見えます。
UserExists = user.isValidUser(username, password);
行にエラーが発生しているようです。私はどこが間違っていたのか分かりませんが、これをデバッグすることはできません。誰も助けることができますか?前もって感謝します。
こんにちは上
@Autowired
注釈、あなたの答えに感謝であると思われるので、春には、あなたのためuser
を初期化したいと仮定します。 '@ Autowired'はどこに追加しますか?ユーザーを宣言していますか?ここに - 'パブリックユーザのユーザ;'? –@スラブン - はい –