0

スプリング コントローラーを構成しようとしているときに、このエラーが発生します。名前が正しく一致していると確信していますが、それでもこのエラーが発生します。これが私のコントローラークラスです。また、入力ページと出力ページは同じです。私を助けてください

「リクエスト属性として利用可能な Bean 名 'userForm' の BindingResult もプレーンなターゲット オブジェクトもありません」

@Controller
@SessionAttributes
public class UserController {

    protected Log logger = LogFactory.getLog(getClass());

    @Autowired
    UserService userService;

    @RequestMapping(value="/userList")
    public ModelAndView getUserList(){

        List<User> userList = userService.getUserList();        

        return new ModelAndView("userList", "userList", userList);      
    }

    @RequestMapping(value="/findUser")
    public ModelAndView findUser(@ModelAttribute("user") User user,
                                 BindingResult result){ 

        List<User> userResultsList = null;

        //model.addAttribute("user", new User());

        userResultsList = userService.findUser(user.getUsername(), user.getFirstname(),
                user.getLastname());            

        return new ModelAndView("userList", "user", userResultsList);       
    }


}

そして私のJSPはここにあります

<body>
    <form:form modelAttribute="user" method="post" action="/findUser.html">
        <table>
            <tr>
                <td><form:label path="username">User ID:</form:label></td>
                <td><form:input path="username" /></td>
            </tr>
            <tr>
                <td><form:label path="firstname">First Name</form:label></td>
                <td><form:input path="firstname" /></td>
            </tr>
            <tr>
                <td><form:label path="lastname">Last Name:</form:label></td>
                <td><form:input path="lastname" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="findUser" /></td>
            </tr>
        </table>
    </form:form>    
        <table>
            <tr>
                <td>User Id</td>
                <td>First Name</td>
                <td>Last Name</td>
                <td>Email Address</td>
                <td>Last Update Date</td>
                <td>Last Update By</td>
            </tr>
        <c:forEach var="list" items="${userList}">
            <tr>
                <td>${list.userId}</td>
                <td>${list.username}</td>
                <td>${list.firstname}</td>
                <td>${list.lastname}</td>
                <td>${list.email}</td>
                <td>${list.lastUpdatedBy}</td>
                <td>${list.lastUpdatedDate}</td>    
                <td><a href="listVendors.html?userId=${list.userId}">assignVendor</a></td>          
            </tr>
        </c:forEach>
    </table>
4

2 に答える 2

0

public ModelAndView getUserList() メソッドに次の行を追加してみてください。

modelAndView.addObject("user", new User());
于 2013-08-13T20:48:45.000 に答える
0

JSP では、基本的に MODEL オブジェクトのプロパティである「user」と「userList」という名前の 2 つのモデル属性を使用しています。

最初にページにアクセスすると、Spring は Model オブジェクト (MVC の M) から "user" および "userList" という名前のプロパティ値を見つけようとします。そのため、ページをユーザーに表示する前に (通常はユーザーを JSP ページに移動させるメソッド内から)、「user」と「userList」のプロパティ値を設定する必要があります。 「getUSerList」メソッドは次のとおりです。

        @RequestMapping(value="/userList")
        public ModelAndView getUserList(){
             ModelAndView model = new ModelAndView("userList");
             User user=new User();
             List<User> userList = userService.getUserList();        

             model.addObject("user",user);
             model.addObject("userList",userList);
             return model;      
        }

このメソッドは、モデルに「user」および「userList」属性値が入力された「userList」JSP に移動します。

于 2013-08-27T15:01:13.333 に答える