0
我是Spring的新手,在使用浏览器输入campaigns.jsp时,出现此异常。Spring,IllegalStateException打开页面时出现
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'campaign' available as request attribute
我有这样的控制器:
@Controller
@RequestMapping(value = "/admin")
public class AdminIndexController {
@RequestMapping(value = "/secure/campaigns.jsp", method = RequestMethod.GET)
public String campaigns() {
return "campaigns";
}
@RequestMapping(value = "/secure/create", method = RequestMethod.POST)
public String addContact(@ModelAttribute("campaign")
Campaign campaign) {
return "campaigns";
}
}
Campaings.jsp(如果我删除这部分,它显示的页面正确):
<form:form method="post" action="create" commandName="campaign">
<table>
<tr>
<td><form:label path="question">Question</form:label></td>
<td><form:input path="question" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add Campaign"/>
</td>
</tr>
</table>
</form:form>
我想有一个问题映射action="create"
,我不确定它指向哪里。我认为它指向与.jsp相同的地方。这是地址我使用http://localhost:8080/server/rest/admin/secure/campaigns.jsp
非常感谢你!我可以在9分钟内接受:)。我认为Spring正在检查表单,如果它具有正确准备的“操作”路径! – libik
@libik不客气。还有一件事你应该修复的是'action'属性。不要相对。在'$ {pageContext.request.contextPath}'的前面加上'(在这个例子中,完整的值是'$ {pageContext.request.contextPath}/secure/create'),这样很明显它会发生什么。如果您最终将表单复制粘贴到另一个以不同路径呈现的JSP中,您不必问自己:“为什么它会在其他地方?”。 –
谢谢。如果我理解正确,在这个环境和完整地址中:'http:// localhost:8080/server/rest/admin/secure/campaigns.jsp','$ {pageContext.request.contextPath}'是http://localhost:8080/server/rest/admin /'? – libik