java commandresult_是什么原因导致“ java.lang.IllegalStateException:BeanResult'command'的BindingResult和普通目标对象...

我正在尝试编写一个Spring MVC Web应用程序,用户可以在其中将电影名称添加到内存集合中。像这样配置

public class Application extends AbstractAnnotationConfigDispatcherServletInitializer {

protected Class>[] getRootConfigClasses() {

return new Class>[] {};

}

protected Class>[] getServletConfigClasses() {

return new Class>[] { SpringServletConfig.class };

}

protected String[] getServletMappings() {

return new String[] { "/" };

}

}

@Configuration

@ComponentScan("com.example")

public class SpringServletConfig extends WebMvcConfigurationSupport {

@Bean

public InternalResourceViewResolver resolver() {

InternalResourceViewResolver vr = new InternalResourceViewResolver();

vr.setPrefix("WEB-INF/jsps/");

vr.setSuffix(".jsp");

return vr;

}

}

套餐中只有一个@Controller班级com.example

@Controller

public class MovieController {

private final CopyOnWriteArrayList movies = new CopyOnWriteArrayList<>();

@RequestMapping(path = "/movies", method = RequestMethod.GET)

public String homePage(Model model) {

model.addAttribute("movies", movies);

return "index";

}

@RequestMapping(path = "/movies", method = RequestMethod.POST)

public String upload(@ModelAttribute("movie") Movie movie, BindingResult errors) {

if (!errors.hasErrors()) {

movies.add(movie);

}

return "redirect:/movies";

}

public static class Movie {

private String filmName;

public String getFilmName() {

return filmName;

}

public void setFilmName(String filmName) {

this.filmName = filmName;

}

}

}

WEB-INF/jsps/index.jsp 包含

Movies

Current Movies:

  • ${movieItem.filmName}
Movie name:

该应用程序配置了上下文路径/Example。当我发送GET请求到

http://localhost:8080/Example/movies

请求失败,Spring MVC响应500状态码,并报告以下异常和堆栈跟踪

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute

org.springframework.web.servlet.support.BindStatus.(BindStatus.java:144)

org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168)

org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188)

org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154)

org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:117)

org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422)

org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142)

org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)

org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)

org.apache.jsp.WEB_002dINF.jsps.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:267)

org.apache.jsp.WEB_002dINF.jsps.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:227)

org.apache.jsp.WEB_002dINF.jsps.index_jsp._jspService(index_jsp.java:142)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)

javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)

org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)

org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)

org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)

javax.servlet.http.HttpServlet.service(HttpServlet.java:622)

org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我希望JSP生成带有单个文本输入(用于Movie名称)和提交按钮的HTML ,可以用来发送带有new的POST请求Movie。为什么JSP servlet却无法呈现Spring的标签?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值