Spring MVC 5.3.2 java.lang.NullPointerException:无法调用,因为NULL

Spring MVC 5.3.2 java.lang.NullPointerException:无法调用,因为NULL,java,mysql,spring,nullpointerexception,spring-repositories,Java,Mysql,Spring,Nullpointerexception,Spring Repositories,我知道我在这里做错了什么,但我想不通,我需要你的帮助。 我将简明扼要地直截了当地说: 存储库 enter code here @Repository public interface TemplateRepository extends CrudRepository<Template, Integer>{ @Query("select t.temp_code From Template t where t.temp_area = ?1")

我知道我在这里做错了什么,但我想不通,我需要你的帮助。 我将简明扼要地直截了当地说:

存储库

enter code here
@Repository
public interface TemplateRepository extends CrudRepository<Template, Integer>{
     @Query("select t.temp_code From Template t where t.temp_area = ?1") 
      public String getTemplateCode(String temp_area);
    
}
控制器

@Controller
public class TemplateController {
    @Autowired
    static TemplateService templateservice;

    
     public static String getLeftMenu() {
         return templateservice.getLeftMenuArea();
     }
}
JSP

....
    <%      
    TemplateController tc = new TemplateController();
        String test = tc.getLeftMenu();
    
        pageContext.setAttribute("test", test);
     %>                       

                            <div class="tinymce-single responsive-mg-b-30">
                                <div class="alert-title">
                                    <h2>Notice</h2>
                                </div>
                                <div id="summernote1">   <c:out value="${test}" escapeXml="false" />
                                </div>
                            </div>
....
。。。。
通知
....
运行应用程序时,我收到以下错误消息:

SEVERE: Servlet.service() for servlet [spring] in context with path [/eFatura-CE-Systems] threw exception [Beim Verarbeiten von [/WEB-INF/views/index.jsp] ist in Zeile [1078] eine Ausnahme erzeugt worden

1075:   
1076:   <%      
1077:   TemplateController tc = new TemplateController();
1078:       String test = tc.getLeftMenu();
1079:   
1080:         pageContext.setAttribute("test", test);
1081:      %>                       

Stacktrace:] with root cause
java.lang.NullPointerException: Cannot invoke "de.efatura.service.TemplateService.getLeftMenuArea()" because "de.efatura.controller.TemplateController.templateservice" is null
    at de.efatura.controller.TemplateController.getLeftMenu(TemplateController.java:16)
severy:Servlet[spring]的Servlet.service()与路径[/eftura CE Systems]的上下文中抛出异常[Beim Verarbeiten von[/WEB-INF/views/index.jsp]在Zeile[1078]中
1075:   
1076:                          
Stacktrace:]具有根本原因
java.lang.NullPointerException:无法调用“de.efatura.service.TemplateService.getLeftMenuArea()”,因为“de.efatura.controller.TemplateController.TemplateService”为null
位于de.efatura.controller.TemplateController.getLeftMenu(TemplateController.java:16)

有没有人比我更好的办法使用Spring data JPA方法查询从MySQL数据库获取数据并将其输出到JSP文件中?

主要原因是您正在JSP中手动创建一个新的
TemplateController
。如果您手动创建bean,Spring将不会帮助您自动注入其依赖项(在本例中为
TemplateRepository
)。因此,它的依赖项为空,当您访问它时,NPE发生

当您想要使用bean而不是手动创建bean时,应该从spring上下文中获取
TemplateController
。此外,将与JSP中的业务逻辑相关的java代码混合在一起,就像您现在所做的一样,被认为是业界最糟糕的做法之一

相反,您应该计算要在
TemplateController
中显示的数据。将数据放入
模型
/
模型映射
/
模型和视图
,然后使用EL表达式在JSP中访问它。类似于或

SEVERE: Servlet.service() for servlet [spring] in context with path [/eFatura-CE-Systems] threw exception [Beim Verarbeiten von [/WEB-INF/views/index.jsp] ist in Zeile [1078] eine Ausnahme erzeugt worden

1075:   
1076:   <%      
1077:   TemplateController tc = new TemplateController();
1078:       String test = tc.getLeftMenu();
1079:   
1080:         pageContext.setAttribute("test", test);
1081:      %>                       

Stacktrace:] with root cause
java.lang.NullPointerException: Cannot invoke "de.efatura.service.TemplateService.getLeftMenuArea()" because "de.efatura.controller.TemplateController.templateservice" is null
    at de.efatura.controller.TemplateController.getLeftMenu(TemplateController.java:16)