Spring BindingResult错误[重复]

2024-03-09

我收到以下错误消息:

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

我的 JSP 看起来像:

    <form:form commandName="billingInfoCommand" method="post" 
onsubmit="return checkVals()">

我的控制器看起来像:

public class BillingInfoController extends FusionFormController {
    protected final Log logger = LogFactory.getLog(getClass());
    private FieldAccessService fieldAccessService;

        public BillingInfoController(){
        setCommandClass(CommonCommand.class);
        setCommandName("billingInfoCommand");
    }

   protected Map referenceData(HttpServletRequest request,Object command, Errors errors) throws Exception {

        CommonCommand commonCommand=(CommonCommand)command;
        HashMap<String,Object> refDataMap=new HashMap<String,Object>();
        refDataMap.put("billingTypes",this.getLookupValsAsMap("getBillingTypes"));
        Long stageId=commonCommand.getEmeaMain().getStageId();
        refDataMap.put("requiredFields",requiredFields);
        return refDataMap;
    }


  public Object formBackingObject(HttpServletRequest request){
        BillingInfo billingInfoObj=null;
        Long cepWorkItemNo=null;
        CommonCommand billingInfoCommand=new CommonCommand();
        try{
         cepWorkItemNo=new Long(request.getParameter("cep_work_item_no"));
        }catch(NumberFormatException e){
        }
        if(cepWorkItemNo==null){
           billingInfoObj=new BillingInfo();
        }else{
          billingInfoObj=(BillingInfo)domainService.getDomainObject(BillingInfo.class,cepWorkItemNo);
        }
        if(billingInfoCommand.getBillingInfo()==null)
           billingInfoCommand.setBillingInfo(billingInfoObj);
        if(billingInfoCommand.getEmeaMain()==null)
            billingInfoCommand.setEmeaMain(emeaMain);
        return billingInfoCommand;
   }
}

我的 Pojo 类如下所示:

public class BillingInfo {

    private Integer billingId;

    public Integer getBillingId() {
        return billingId;
    }
    public void setBillingId(Integer billingId) {
        this.billingId = billingId;
    }
}

Note

我在这里只发布了相关的代码片段。我不确定为什么我会收到有关 IllegalStateException 的错误,一些有用的指针将不胜感激。

另外,获得的正常原因是什么Neither BindingResult nor plain target object for bean name x available as request attribute错误?

完整的堆栈跟踪

 - java.lang.IllegalStateException:
   Neither BindingResult nor plain
   target object for bean name
   'billingInfoCommand' available as
   request attribute
       java.lang.IllegalStateException: Neither BindingResult nor plain
   target object for bean name
   'billingInfoCommand' available as
   request attribute at
   org.springframework.web.servlet.support.BindStatus.(BindStatus.java:148)
   at
   org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:179)
   at
   org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.resolveCssClass(AbstractHtmlElementTag.java:404)
   at
   org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:380)
   at
   org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
   at
   org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:90)
   at
   org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77)
   at
   org.apache.jsp.WEB_002dINF.jsp.globalecep.ap.billing_005finfo_jsp._jspx_meth_form_005flabel_005f0(billing_005finfo_jsp.java:1243)
   at
   org.apache.jsp.WEB_002dINF.jsp.globalecep.ap.billing_005finfo_jsp._jspService(billing_005finfo_jsp.java:363)
   at
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
   at
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
   at
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at
   org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
   at
   org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:565)
   at
   org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:493)
   at
   org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
   at
   org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:600)
   at
   org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
   at
   org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
   at
   org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756)
   at
   org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:881)
   at
   org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
   at
   org.apache.jsp.WEB_002dINF.fusion.jsp.tab_005ftemplate_jsp._jspx_meth_tiles_005finsert_005f2(tab_005ftemplate_jsp.java:1807)
   at
   org.apache.jsp.WEB_002dINF.fusion.jsp.tab_005ftemplate_jsp._jspService(tab_005ftemplate_jsp.java:307)
   at
   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
   at
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
   at
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at
   org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
   at
   org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
   at
   org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:395)
   at
   org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
   at
   org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145)
   at
   org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:251)
   at
   org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1144)
   at
   org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:880)
   at
   org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)
   at
   org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
   at
   org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
   at
   javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
   at
   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at
   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at
   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at
   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
   at
   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at
   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at
   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at
   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
   at
   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
   at
   org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at
   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at
   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at
   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at
   java.lang.Thread.run(Thread.java:595)

Servlet 配置映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


    <bean id="apbillingInfoController" class="ap.BillingInfoController">
      <property name="queryService" ref="queryService" />
      <property name="domainService" ref="domainService" />
      <property name="formView" value="ap_billinginfo"/>
      <property name="validator" ref="apbillingInfoValidator" />
      <property name="fieldAccessService"  ref="fieldAccessService"/>
    </bean>

    <bean id="apbillingInfoValidator"  class="validator.ap.BillingInfoValidator">
           <property name="queryService" ref="queryService" />
    </bean>

    <bean id="apcompanyBillingInfoController" class="ap.company.COMPANYBillingInfoController">
      <property name="commandName"   value="companyBillingInfoBean"/>
      <property name="commandClass"  value="command.ap.company.COMPANYCommonCommand"/>
      <property name="queryService" ref="queryService" />
      <property name="domainService" ref="domainService" />
      <property name="formView" value="ap_companybillinginfo"/>
      <property name="validator" ref="apcompanyBillingInfoValidator" />
      <property name="fieldAccessService"  ref="fieldAccessService"/>
    </bean>

    <bean id="apcompanyBillingInfoValidator"  class="validator.ap.company.COMPANYBillingInfoValidator">
        <property name="fieldAccessService"  ref="fieldAccessService"/>
       <property name="queryService" ref="queryService" />
    </bean>
      <property name="mappings">
        <props>
          <prop key="/ap_billing.htm">apbillingInfoController</prop>
        </props>
      </property>
    </bean>

      <property name="mappings">
        <props>
          <prop key="/company_ap_billing.htm">apcompanyBillingInfoController</prop>
        </props>
      </property>
    </bean>
</beans>

Thanks.


当您的 jsp 被呈现时,错误本身就会发生。我假设你有一个jsp,可能有一个类似的标签(spring:bind 会导致同样的问题)

<form:form modelAttribute="billingInfoCommand">
...
</form:form>

当它呈现 jsp 时,它会在您的请求范围内查找名为 billingInfoCommand 的 bean,并使其可用于 jstl 表达式(以及其他内容)。当请求范围内不存在对象时,将引发您看到的异常。

Edit:

很高兴看到您在删除所有代码时没有遇到任何错误。接下来,尝试直接查看请求范围。

<div>The request scope is: ${requestScope}</div>
<div>The command is: ${requestScope.billingInfoCommand}</div>

如果你看到类似的东西

请求范围为:javax.servlet.jsp.el.ImplicitObjectELResolver……
命令是:

那么你的bean实际上并不在请求范围内。您必须查看的下一件事是支持对象在哪里放入请求范围。首先想到的是 formBackingObject 方法可能与将其放入请求有关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring BindingResult错误[重复] 的相关文章

随机推荐

  • 如何在WPF中绘制可点击的矩形

    我是 WPF 应用程序的绝对初学者 需要一些帮助 我想做的就是从 A 点到 B 点画一个矩形 and能够检测何时单击矩形 因此 当单击它时 它会变成黄色 再次单击时 它会变成红色 有多种方法可以做到这一点 向矩形添加单击处理程序 并从后面的
  • 键入任何 不能符合 Hashable

    我正在使用 Swift 5 7 新功能 并尝试实现一些异构集 我已将代码简化为这个简单的游乐场 protocol Stuff Hashable var identifier String get struct StuffA Stuff le
  • Java字符串数组反转

    我试图反转 java 数组中的所有字符串 但似乎用第一个字符串覆盖了所有字符串 private static void palindrome String s int flag 0 String reverse for int i 0 i
  • 学习如何分析项目

    我刚刚偶然开始为我公司的一个客户 中小企业 分析一个项目 我是一名 Net 开发人员 5 年 在分析软件方面经验很少 来自学校的 UML 我们刚刚结束了与用户两周的交谈 并得到了一份不错的需求清单 显然 我们已经过滤掉了最重要的需求 并且必
  • 使用 fetchedResultsController 删除表视图中的行

    在 swype 删除期间 此方法最重要的几行 void tableView UITableView tableView commitEditingStyle UITableViewCellEditingStyle editingStyle
  • 如何在 ActionScript 3 中获取用户的屏幕分辨率?

    ActionScript 3 有没有办法检测用户的屏幕分辨率 这些会将数字返回到输出窗口 trace Capabilities screenResolutionX trace Capabilities screenResolutionY
  • Netty:如何处理从 ChunkedFile 接收到的块

    我是 netty 新手 我正在尝试将分块文件从服务器传输到客户端 发送块工作得很好 问题在于如何处理接收到的块并将它们写入文件 我尝试的两种方法都会给我带来直接缓冲区错误 任何帮助将不胜感激 Thanks Override protecte
  • 使用 LINQ to Entities 将多条记录插入表的正确方法

    正如我们许多人所做的那样 我设置了一个简单的循环来从数据库添加多个记录 一个典型的例子是这样的 方法一 A list of product prices List
  • 从图像中删除周围的空白

    我有一组从客户那里收到的产品图片 每张产品图片都是某物的照片 并且是在白色背景下拍摄的 我想裁剪图像的所有周围部分 但只保留中间的产品 这可能吗 举个例子 http www 5dnet de media catalog product d
  • Eclipse 如何针对第三方框架进行代码补全?

    How does the Eclipse editor work to enable code completion For example within the XML editor for Hibernate property file
  • 非静态内部类对象不再被引用后会被垃圾回收吗?

    我有一个类似于以下的 spring bean public class MyServiceImpl private MyDAO myDAO public class MyInnerClass implements SomeInterface
  • 如何在 JavaFX 应用程序中显示 HTML

    我正在开发一个 FontViewer 应用程序 它根据所选的字体样式更改文本的字体 这是我的应用程序的控制器类 public class FXMLDocumentController implements Initializable FXM
  • 使用动作脚本获取IP地址?

    是否可以通过Flash swf Action Script 3获取客户端IP地址 然后将其传递到php文件以将其存储在数据库中 无需在 Flash 中执行此操作 只需在服务器上的 php ip REMOTE ADDR 中执行此操作即可
  • 为什么调试器内存窗口在 VS 2015 中不可用?

    Visual Studio 调试器具有这些内存窗口 用于检查原始内存 在 Visual Studio 2015 中 这些仍然存在 因为存在关联的命令 好吧 文档也是这么说的 然而他们并没有出现 在菜单中 调试 gt Windows gt 没
  • 为什么 django 会忽略来自线路的 HTTP_X_FORWARDED_PROTO 但在测试中却不会?

    如果 HTTP X FORWARDED PROTO 通过网络传输 为什么 django 会忽略它 我在 settings xml 中添加了以下配置 make sure we know when we are secure when we a
  • Java 中的字符串连接和自动装箱

    当您将 String 与 int 等原语连接起来时 autobox价值第一 ex String string Four 4 它如何将值转换为字符串Java 要查看 Java 编译器生成的内容 使用它总是有用的javap c显示实际生成的字节
  • Matplotlib 子图太窄且布局紧凑

    我目前正在尝试使用 GridSpec 在 Matplotlib Python 3 6 Matplotlib 2 0 0 中绘制许多子图 这是最小的工作示例 import matplotlib pyplot as plt from matpl
  • make_unique 完美转发

    为什么没有std make unique标准 C 11 库中的函数模板 我发现 std unique ptr
  • Alien::wxWidgets 在 OSX10.10 上安装失败

    我正在尝试使用 wxWidgets 版本 3 0 2 安装 Alien wxWidgets 版本 0 67 但无论我做什么 都会收到以下错误 checking if C compiler clang mmacosx version min
  • Spring BindingResult错误[重复]

    这个问题在这里已经有答案了 我收到以下错误消息 java lang IllegalStateException Neither BindingResult nor plain target object for bean name bill