我是Spring MVC的新手,但不是Java的Web开发的新手.我正在尝试创建一个简单的form-> controller示例.
我有一个表单,一个表单控制器(在下面粘贴的上下文XML中配置)和我的模型(一个简单的bean).提交表单时,无论如何,我的文本输入值始终为null.有任何想法吗?
表单控制器弹簧配置:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
包含我的表单的JSP如下:
Simple tools.error s {
color:#FF0000;
}
Errors:
这是我控制器的完整来源:
public class URLCacheFormController extends SimpleFormController {
private URLCachingService cachingService;
private static Logger log = Logger.getLogger(URLCacheFormController.class);
public ModelAndView onSubmit(Object command) throws ServletException {
log.debug(String.format("URLCachingFormController received request with object '%s'", command));
URLBean urlBean = (URLBean) command;
try {
URL url = new URL(urlBean.getUrl());
URLCache cache = cachingService.cacheURL(url);
cache.cacheToTempFile();
} catch (IOException e) {
log.error("Invalid URL...", e);
}
return new ModelAndView(new RedirectView(getSuccessView()));
}
protected Object formBackingObject(HttpServletRequest request) throws ServletException {
log.debug("formBackingObject() ");
return new URLBean();
}
public void setURLCachingService(URLCachingService cachingService) {
this.cachingService = cachingService;
}
}
以上所有内容均产生以下HTML:
Attrs:我现在正在重写doSubmitAction(Object command),但是我仍然没有点击该方法.表单提交,但是接下来我要知道的是空白表单(在调用formBackingObject(HttpServletRequest request)之后).
也就是说,当我提交时,永远不会执行表单控制器中doSubmitAction的第1行的日志记录调用.验证程序执行并失败(正确添加错误消息),因为它检查的值始终为null(或者正确放置,从不设置).但是,总是对formBackingObject进行调用.我的表单的请求属性(表单输入“ url”)始终为null.
更新:好的,因此在按照serg555的建议进行了一些认真的调试之后,并删除了验证,我可以确认问题似乎在于将请求参数(例如来自表单的’url’的值)映射到我的命令/ bean;即,从未在我的bean上设置URL,或者正在重新创建bean.
请帮忙?