springMVC中的@RequestAttribute未绑定Entitiy类的对象

时间:2019-03-18 15:51:32

标签: java spring spring-mvc jsp

我是spring的新手,我试图使用Annotations使用spring MVC开发基本的Java项目,我试图使用@RequestAttribute在控制器中创建我的Entity类(Information.java)的对象,并将其发送给查看,我的代码如下

我的控制器类

 package org.practice.spring;

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView

    @Controller()
    public class HelloController
    {

        @RequestMapping("/hello")
        public ModelAndView helloWorld(@RequestAttribute Information userInfo) 
        {


            ModelAndView model = new ModelAndView("hello");
            model.addObject("firstname", userInfo.getFirstName());
            model.addObject("lastname", userInfo.getLastName());
            return model;
        }

        @RequestMapping("/")
        public ModelAndView homePage() {
            ModelAndView model = new ModelAndView("index", "info", new Information());
            return model;
        }
    }

我的实体类

package org.practice.spring;

public class Information {
    private String firstName;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    private String lastName;

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
   }

Index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Hello,Please Enter Name</h3>
<form:form action="hello" modelAttribute="info">
First Name:<form:input path="firstName"/><br>
Last Name:<form:input path="lastName"/><br>
<input type="submit" value="Submit">

</form:form>
</body>
</html>

hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
Hello World
<h3>Hello ${firstName} ${lastName}</h3>

</body>
</html>

Tomcat正在给我这个

  

org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver logException   警告:已解决[org.springframework.web.bind.ServletRequestBindingException:缺少信息类型为Information的请求属性'userInfo'

当我运行应用程序浏览器时,会给我

  

HTTP状态400 –错误的请求类型状态报告

     

信息类型为“消息丢失”的请求属性“ userInfo”

     

说明由于以下原因,服务器无法或不会处理请求:   被视为客户错误的内容(例如,格式错误   请求语法,无效的请求消息框架或欺骗性请求   路由)。

到目前为止,我的代码中没有语法错误,但是我的代码无法正常工作,我在这里停留了将近2天,做了很多谷歌搜索,但没有运气,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:@RequestAttribute(name =“ info”)。