在学习Spring MVC的过程中,当使用了Spring中自带的<form:form>标签时,就碰到了
Neither BindingResult nor plain target object for bean name 'command' available as request attribute
这个
非法语句异常
。
首先来看看该异常的谷歌翻译"BindingResult和Bean name'command'的普通目标对象都不可用作请求属性",其实意思就是没有找到对象请求绑定类。贴上我出问题的代码student.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>学生信息填写界面</title></head><body> <h2>Student Information</h2> <%-- <form:form> 标签不可用 --%> <form:form method="post" action="/HelloWeb/addStudent"> <table> <tr> <td><form:label path="name">Name</form:label></td> <td><form:input path="name" /></td> </tr> <tr> <td><form:label path="age">Age</form:label></td> <td><form:input path="age" /></td> </tr> <tr> <td><form:label path="id">id</form:label></td> <td><form:input path="id" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Submit" /></td> </tr> </table> </form:form></body></html>
注: 如下代码非常重要,有这行代码才能正常使用spring的<form:form>标签
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
当我在服务器中运行会出现如下错误(相关的web.xml等已经配置好),经过我查阅众多资料,终于明白所谓的目标类找不到的问题了,事实上只要加上如下红色字体中的代码:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<jsp:useBean id="command" class="com.spring.mvc.Student" scope="request"></jsp:useBean>