Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 MVC中未向显示数据库详细信息_Java_Mysql_Spring_Jsp_Spring Mvc - Fatal编程技术网

Java 在Spring MVC中未向显示数据库详细信息

Java 在Spring MVC中未向显示数据库详细信息,java,mysql,spring,jsp,spring-mvc,Java,Mysql,Spring,Jsp,Spring Mvc,该项目使用MySql在JavaSpringMVC上运行。 显示不工作(下图),可能是因为函数没有返回查询结果,或者是因为其他原因。 下面是用于在数据库上运行查询并返回结果的函数。此函数是“User.java”文件的成员 公共列表getUsers() { 返回jdbcTemplate.query(“从学生中选择*”,新建行映射器() { 公共用户mapRow(ResultSet rs,int row)抛出SQLException { 用户u=新用户(); u、 setUserName(

该项目使用MySql在JavaSpringMVC上运行。 显示不工作(下图),可能是因为函数没有返回查询结果,或者是因为其他原因。 下面是用于在数据库上运行查询并返回结果的函数。此函数是“User.java”文件的成员

公共列表getUsers()
{  
返回jdbcTemplate.query(“从学生中选择*”,新建行映射器()
{  
公共用户mapRow(ResultSet rs,int row)抛出SQLException
{  
用户u=新用户();
u、 setUserName(rs.getString(1));
u、 设置密码(rs.getString(2));
u、 setName(rs.getString(3));
u、 setBranch(rs.getString(4));
u、 setM1(rs.getInt(5));
u、 setM2(rs.getInt(6));
u、 setM3(rs.getInt(7));
u、 setAggregate(rs.getInt(8));
u、 setGrade(rs.getString(9));
返回u;
}  
});  
}  
这将返回到“HomeController.java”,其实现如下所示

@RequestMapping("/adminHome")  
public ModelAndView adminHome(User user){  
    List<User> list= user.getUsers();  
    return new ModelAndView("adminHome","list",list);  
}  
@RequestMapping(“/adminHome”)
公共模型和视图管理员主页(用户){
List=user.getUsers();
返回新模型和视图(“adminHome”、“list”、“list”);
}  
相应的JSP是“adminHome.JSP”,如下所示

<body>
<h3>Hi ${name}</h3>
<h1>USERS List</h1>  
<table border="2" width="70%" cellpadding="2">  
<tr><th>Username</th><th>Password</th><th>Name</th><th>Mobile</th>
<th>Branch</th><th>Marks1</th><th>Marks2</th><th>Marks3</th>
<th>Aggregate</th><th>Grade</th><th>Edit</th>
<th>Delete</th></tr>  
   <c:forEach var="u" items="${list}">   
   <tr>  
   <td>${u.username}</td>
   <td>${u.password}</td>   
   <td>${u.name}</td>  
   <td>${u.mobile}</td>  
   <td>${u.branch}</td>
   <td>${u.marks1}</td>
   <td>${u.marks2}</td>
   <td>${u.marks3}</td>
   <td>${u.aggregate}</td>
   <td>${u.grade}</td>   
   <td><a href="editemp/${u.username}">Edit</a></td>  
   <td><a href="deleteemp/${u.username}">Delete</a></td>  
   </tr>  
   </c:forEach>  
   </table>  
   <br/>  
   <a href="register">Add New User</a>     
</body>

你好${name}
用户列表
UsernamePasswordNameMobile
分支标记1标记2标记3
聚合编辑
删除
${u.username}
${u.password}
${u.name}
${u.mobile}
${u.branch}
${u.marks1}
${u.marks2}
${u.marks3}
${u.aggregate}
${u.grade}

@RequestMapping(value=“/user”,method=RequestMethod.POST)
公共字符串用户(@validateduseruser,Model-Model,Locale)
{
U=user.getUserName();
字符串s1=“密码”;
String s2=“name”;
字符串p=“X”;
尝试
{
最后一个字符串selectQuery=“select*from student,其中username=”+U+”;
Map Map=jdbcTemplate.queryForMap(selectQuery);
Set=map.entrySet();
迭代器itr=set.Iterator();
while(itr.hasNext())
{  
//转换为Map.Entry,这样我们就可以分别获得键和值
Map.Entry=(Map.Entry)itr.next();
if(entry.getKey().equals(s1))
{   
p=entry.getValue().toString();
系统输出println(p);
}
if(entry.getKey()等于(s2))
{   
NAME=entry.getValue().toString();
系统输出println(p);
}          
}  
}
捕获(异常e2)
{
System.out.println(“登录时引发异常(用户)!!!”;//在sql查询中不包含按用户名搜索返回NULL的情况
}
字符串dest=“user”;
if(user.getUserName().equals(“admin”)和&user.getPassword().equals(p))
{
dest=“adminHome”;
System.out.println(“请求的管理页面”);
model.addAttribute(“name”,name);
}
else if(user.getUserName().equals(U)和&user.getPassword().equals(p))
{
System.out.println(“请求的用户页面”);
model.addAttribute(“name”,name);
}
其他的
{
dest=“errLogin”;//重定向到errLogin.jsp
System.out.println(“请求的错误登录页面,locale=“+locale”);
日期=新日期();
DateFormat DateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
字符串formattedDate=dateFormat.format(日期);
model.addAttribute(“serverTime”,formattedDate);
model.addAttribute(“消息”,“无效登录凭据!!!重试”);
}   
返回目的地;
}

您没有将其正确重定向到
/adminHome
服务。相反,它将重定向到
adminHome.jsp
页面

如果要将其从
/user
服务重定向到
/adminHome
,而不是
返回“adminHome”,请执行以下操作-

@RequestMapping(value = "/user", method = RequestMethod.POST)
public String user(@Validated User user, Model model,Locale locale) {
    // your code and use return line as follows
    return "redirect:adminHome";
}
当您使用
字符串dest
作为最终返回语句时,请将其更新为
“重定向:


这将调用您的
/adminHome
服务,一切正常。

您想显示列表,但映射器返回一个用户…您调试了代码吗?@Stultuske是的,我想显示列表,但映射器没有返回任何内容,是的,我已经调试了。从映射器中提取您的查询,并检查是否实际返回结果。您正在根据屏幕截图使用
/user
url,控制器中的映射为
/adminHome
。确实调用了正确的服务吗?重定向现在是正确的,谢谢,但现在
返回jdbcTemplate。查询(“从学生中选择*”,新的RowMapper()
引发空指针异常,页面正在崩溃。请检查
jdbcTemplate
是否正确配置了数据源。您必须对其进行调试。
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String user(@Validated User user, Model model,Locale locale) 
{
    U = user.getUserName();
    String s1 = "password";
    String s2 = "name";
    String p = "X";
    try
    {
        final String selectQuery = "select * from student where username='"+U+"'";  
        Map<?, ?> map = jdbcTemplate.queryForMap(selectQuery);
        Set set  = map.entrySet();
        Iterator itr=set.iterator();  

        while(itr.hasNext())
        {  
            //Converting to Map.Entry so that we can get key and value separately  
            Map.Entry entry=(Map.Entry)itr.next();  
            if(entry.getKey().equals(s1))
            {   
                p = entry.getValue().toString();
                System.out.println(p);
            }
            if(entry.getKey().equals(s2))
            {   
                NAME = entry.getValue().toString();
                System.out.println(p);
            }          
        }  
    }
    catch(Exception e2)
    {
        System.out.println("Exception Raised while Login(user)!!!");            //not inclusion of case of NULL return by username search in the sql query
    }

    String dest="user";
    if(user.getUserName().equals("admin") && user.getPassword().equals(p))
    {
        dest = "adminHome";
        System.out.println("Admin Page Requested");
        model.addAttribute("name", NAME);
    }
    else if(user.getUserName().equals(U) && user.getPassword().equals(p))
    {
        System.out.println("User Page Requested");
        model.addAttribute("name", NAME);
    }
    else
    {
        dest = "errLogin";                                                          //redirects to errLogin.jsp
        System.out.println("Err Login Page Requested, locale = " + locale);
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        String formattedDate = dateFormat.format(date);

        model.addAttribute("serverTime", formattedDate);
        model.addAttribute("message", "Invalid login credentials !!! Try Again");                   
    }   
    return dest;
}
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String user(@Validated User user, Model model,Locale locale) {
    // your code and use return line as follows
    return "redirect:adminHome";
}