kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Анонимный пользователь
Вопрос

Ни BindingResult, ни простой целевой объект для имени боба не доступны в качестве атрибута запроса


Здравствуйте, эксперты, У меня есть код контроллера, который выдает вышеупомянутую ошибку. Он работал нормально до вчерашнего дня, я понятия не имею, что коллега сделал с этим кодом, и сегодня я вижу ошибку:

Neither BindingResult nor plain target object for bean name 'sideForm' available as request attribute

Подскажите, пожалуйста, где искать такую ошибку. Может я допускаю какую-то ошибку в объявлении метода POST или GET или возвращаю что-то не то?

Ваша помощь будет очень признательна :)

package com.att.analytics.ui;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.si.myworld.business.AdminChart;
import com.si.myworld.business.Chart;
import com.si.myworld.dao.AdminChartSummaryData;
import com.si.myworld.dao.BulletinData;
import com.si.myworld.dao.ChartData;

@RequestMapping("/index.html")
@Controller
public class IndexController {

private static final Logger log = Logger.getLogger(IndexController.class);

/**
 * Called to load the page initially (GET request)
 * 
 * @param model
 * @return
 */
@RequestMapping(method = RequestMethod.GET)
public String getCharts(ModelMap model) {

    Chart chart = new Chart();
    chart.setTimeline("Monthly");
    chart.setStartDt("mm/dd/yyyy");
    chart.setEndDt("mm/dd/yyyy");

    AdminChartSummaryData acsd = new AdminChartSummaryData();
    List<AdminChart> list = acsd.getLandingChartDataList();

    if (list.size() == 4) {
        Chart chart1 = new Chart(list.get(0));
        Chart chart2 = new Chart(list.get(1));
        Chart chart3 = new Chart(list.get(2));
        Chart chart4 = new Chart(list.get(3));
        model.put("chart1", chart1);
        model.put("chart2", chart2);
        model.put("chart3", chart3);
        model.put("chart4", chart4);

        log.info("chart 1>>>>" + chart1);

        ChartData cd = new ChartData();

        String chartOneDatasource = cd.fetchChartDatasourceName(chart1
                .getChartSubgroup());
        String chartTwoDatasource = cd.fetchChartDatasourceName(chart2
                .getChartSubgroup());
        String chartThreeDatasource = cd.fetchChartDatasourceName(chart3
                .getChartSubgroup());
        String chartFourDatasource = cd.fetchChartDatasourceName(chart4
                .getChartSubgroup());

        String breadcrumbOne = chart1.getChartGroup() + ">>"
                + chart1.getChartSubgroup();
        String breadcrumbTwo = chart2.getChartGroup() + ">>"
                + chart2.getChartSubgroup();
        String breadcrumbThree = chart3.getChartGroup() + ">>"
                + chart3.getChartSubgroup();
        String breadcrumbFour = chart4.getChartGroup() + ">>"
                + chart4.getChartSubgroup();

        BulletinData bd = new BulletinData();
        String bulletin = bd.getBulletinData();

        model.put("sideForm", chart);

        model.put("chartOneDatasource", chartOneDatasource);
        model.put("chartTwoDatasource", chartTwoDatasource);
        model.put("chartThreeDatasource", chartThreeDatasource);
        model.put("chartFourDatasource", chartFourDatasource);

        model.put("breadcrumbOne", breadcrumbOne);
        model.put("breadcrumbTwo", breadcrumbTwo);
        model.put("breadcrumbThree", breadcrumbThree);
        model.put("breadcrumbFour", breadcrumbFour);

        model.put("bulletin", bulletin);
    }

    return "land";
}

@RequestMapping(method = RequestMethod.POST)
public String loadCharts(HttpServletRequest request, ModelMap model, @ModelAttribute("sideForm") Chart chart) {

    String from_date = request.getParameter("startDt");
    String to_date = request.getParameter("endDt");

    chart.setStartDt(from_date);
    chart.setEndDt(to_date);

    ChartData cd = new ChartData();

    BulletinData bd = new BulletinData();
    String bulletin = bd.getBulletinData();

    AdminChartSummaryData acsd = new AdminChartSummaryData();
    List<AdminChart> list = acsd.getLandingChartDataList();
    if (list.size() == 4) {
        Chart chart1 = new Chart(list.get(0));
        Chart chart2 = new Chart(list.get(1));
        Chart chart3 = new Chart(list.get(2));
        Chart chart4 = new Chart(list.get(3));
        model.put("chart1", chart1);
        model.put("chart2", chart2);
        model.put("chart3", chart3);
        model.put("chart4", chart4);

        String chartOneDatasource = cd.fetchChartDatasourceName(chart1
                .getChartSubgroup());
        String chartTwoDatasource = cd.fetchChartDatasourceName(chart2
                .getChartSubgroup());
        String chartThreeDatasource = cd.fetchChartDatasourceName(chart3
                .getChartSubgroup());
        String chartFourDatasource = cd.fetchChartDatasourceName(chart4
                .getChartSubgroup());

        model.put("chartOneDatasource", chartOneDatasource);
        model.put("chartTwoDatasource", chartTwoDatasource);
        model.put("chartThreeDatasource", chartThreeDatasource);
        model.put("chartFourDatasource", chartFourDatasource);

        String breadcrumbOne = chart1.getChartGroup() + ">>"
                + chart1.getChartSubgroup();
        String breadcrumbTwo = chart2.getChartGroup() + ">>"
                + chart2.getChartSubgroup();
        String breadcrumbThree = chart3.getChartGroup() + ">>"
                + chart3.getChartSubgroup();
        String breadcrumbFour = chart4.getChartGroup() + ">>"
                + chart4.getChartSubgroup();

        model.put("breadcrumbOne", breadcrumbOne);
        model.put("breadcrumbTwo", breadcrumbTwo);
        model.put("breadcrumbThree", breadcrumbThree);
        model.put("breadcrumbFour", breadcrumbFour);
    }
    return "land";
}

@ModelAttribute("timeline")
public Collection<String> populateTimeline() {
    return Arrays.asList("Daily", "Weekly", "Monthly", "Quarterly",
            "Annually", "12_Month_Rolling");
}
}

Эта страница получает значения из формы, показанной ниже:

<form:form commandName="sideForm">
<div style="font-weight:bold; color:#000">Timeline</div>

<div style="margin:0 0 5px 0;"><form:select path="timeline" items="${timeline}" id="tm"/></div>

<div class="tofrom">From:</div>

<form:input path="startDt" id="from_date" size="7" maxlength="10" />

<div class="tofrom">To:</div>

<form:input path="endDt" id="to_date" size="7" maxlength="12" />

<input type="submit" value="Update Chart" />

</form:form>
33 2009-07-01T15:54:16+00:00 6
 Paul
Paul
Редактировал вопрос 28-го апреля 2011 в 5:09
Программирование
spring
spring-mvc
Dan Hargis
Dan Hargis
17-го сентября 2009 в 11:20
2009-09-17T23:20:38+00:00
Дополнительно
Источник
Редактировать
#9219164

Убедитесь, что ваша форма Spring упоминает modelAttribute="<Имя модели".

Пример:

@Controller
@RequestMapping("/greeting.html")
public class GreetingController {

 @ModelAttribute("greeting")
 public Greeting getGreetingObject() {
  return new Greeting();
 }

 /**
  * GET
  * 
  * 
  */
 @RequestMapping(method = RequestMethod.GET)
 public String handleRequest() {
  return "greeting";
 }

 /**
  * POST
  * 
  * 
  */
 @RequestMapping(method = RequestMethod.POST)
 public ModelAndView processSubmit(@ModelAttribute("greeting") Greeting greeting, BindingResult result){
  ModelAndView mv = new ModelAndView();
  mv.addObject("greeting", greeting);  
  return mv;
 }
}

В вашем JSP:

<form:form  modelAttribute="greeting" method="POST" action="greeting.html">
 sth
sth
Редактировал ответ 19-го сентября 2009 в 3:42
37
0
 user473445
user473445
14-го марта 2011 в 3:33
2011-03-14T15:33:21+00:00
Дополнительно
Источник
Редактировать
#9219165

Убедитесь, что вы объявили боб, связанный с формой, в методе GET связанного контроллера, а также добавили его в модель model.addAttribute("uploadItem", uploadItem);, которая содержит аннотацию @RequestMapping(method = RequestMethod.GET).

Например, UploadItem.java связан с myform.jsp, а контроллер - SecureAreaController.java

myform.jsp содержит

<form:form action="/securedArea" commandName="uploadItem" enctype="multipart/form-data"></form:form>

MyFormController.java

@RequestMapping("/securedArea")
@Controller
public class SecureAreaController {

@RequestMapping(method = RequestMethod.GET)
public String showForm(Model model) {
            UploadItem uploadItem = new UploadItem(); // declareing

            model.addAttribute("uploadItem", uploadItem); // adding in model
    return "securedArea/upload";
}

}

Как вы видите, я объявляю UploadItem.java в методе GET контроллера.

 Jens
Jens
Редактировал ответ 21-го сентября 2015 в 1:14
25
0
Rob Beardow
Rob Beardow
10-го августа 2009 в 2:11
2009-08-10T02:11:49+00:00
Дополнительно
Источник
Редактировать
#9219163

Попробуйте добавить параметр BindingResult в методы, аннотированные @RequestMapping, которые имеют @ModelAttribute аннотированные параметры. После каждого @ModelAttribute параметра, Spring ищет BindingResult в следующей позиции параметра (порядок важен).

Поэтому попробуйте изменить:

@RequestMapping(method = RequestMethod.POST)
public String loadCharts(HttpServletRequest request, ModelMap model, @ModelAttribute("sideForm") Chart chart)
...

To:

@RequestMapping(method = RequestMethod.POST)
public String loadCharts(@ModelAttribute("sideForm") Chart chart, BindingResult bindingResult, HttpServletRequest request, ModelMap model)
...
6
0
 ravindra
ravindra
27-го июля 2012 в 7:06
2012-07-27T07:06:15+00:00
Дополнительно
Источник
Редактировать
#9219166

Я работал на этот же вопрос, и я уверен, что я выяснил точную причину его.

Ни BindingResult, ни простого целевого объекта для фасоли имя 'команда' доступен в качестве атрибута запроса

Если ваше значение successView собственность (название страницы JSP) такая же, как и введите имя страницы, то второе значение конструктор ModelAndView должны совпадать с имя_команды страницы входа.

Е. Г.

индекс.ССП

<html>
<body>
    <table>
        <tr><td><a href="Login.html">Login</a></td></tr>
    </table>
</body>
</html>

dispatcher-servlet.xml

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix">
        <value>/WEB-INF/jsp/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>
<bean id="urlMapping"
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">
        <map>            
            <entry key="/Login.html">
                <ref bean="userController"/>
            </entry>
        </map>            
    </property>               
</bean>       
 <bean id="userController" class="controller.AddCountryFormController">       
       <property name="commandName"><value>country</value></property>
       <property name="commandClass"><value>controller.Country</value></property>        
       <property name="formView"><value>countryForm</value></property>
       <property name="successView"><value>countryForm</value></property>
   </bean>    

AddCountryFormController.java

package controller;

import javax.servlet.http.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class AddCountryFormController extends SimpleFormController
{

    public AddCountryFormController(){
        setCommandName("Country.class");
    }

    protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object command,BindException errors){

            Country country=(Country)command;

            System.out.println("calling onsubmit method !!!!!");

        return new ModelAndView(getSuccessView(),"country",country);

    }

}

Country.java

package controller;

public class Country
{
    private String countryName;

    public void setCountryName(String value){
        countryName=value;
    }

    public String getCountryName(){
        return countryName;
    }

}

countryForm.ССП

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
    <form:form commandName="country" method="POST" >
            <table>
                    <tr><td><form:input path="countryName"/></td></tr>
                    <tr><td><input type="submit" value="Save"/></td></tr>
            </table>
    </form:form>
</body>
<html>

Страница ввода имя_команды=то"Страна"в ModelAndView конструктор как вернуть новый ModelAndView(getSuccessView (), то"Страна" и,страны); Имя_команды означает inputpage ==ModeAndView ("Ну имя_команды наша")

 forsvarir
forsvarir
Редактировал ответ 27-го июля 2012 в 9:22
4
0
Rohit Singh
Rohit Singh
15-го июля 2016 в 5:51
2016-07-15T05:51:35+00:00
Дополнительно
Источник
Редактировать
#9219168

Мы столкнулись с таким же вопросом и изменил имя_команды=" и" в в modelAttribute=" и" в в JSP страницу, чтобы решить эту проблему.

 m00am
m00am
Редактировал ответ 15-го июля 2016 в 6:26
0
0
NBV Sarma
NBV Sarma
28-го июня 2014 в 11:18
2014-06-28T11:18:11+00:00
Дополнительно
Источник
Редактировать
#9219167

Я сталкивался с этой проблемой. Вот мое решение:

Ниже ошибка при запуске небольшой Весна применение:-

*HTTP Status 500 - 
--------------------------------------------------------------------------------
type Exception report
message 
description The server encountered an internal error () that prevented it from fulfilling this request.
exception 
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/employe.jsp at line 12
9: <form:form method="POST" commandName="command"  action="/SpringWeb/addEmploye">
10:    <table>
11:     <tr>
12:         <td><form:label path="name">Name</form:label></td>
13:         <td><form:input path="name" /></td>
14:     </tr>
15:     <tr>
Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause 
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute
    org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174)
    org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194)
    org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    org.apache.jsp.WEB_002dINF.jsp.employe_jsp._jspx_meth_form_005flabel_005f0(employe_jsp.java:185)
    org.apache.jsp.WEB_002dINF.jsp.employe_jsp._jspx_meth_form_005fform_005f0(employe_jsp.java:120)
    org.apache.jsp.WEB_002dINF.jsp.employe_jsp._jspService(employe_jsp.java:80)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs.*

Для того, чтобы решить эту проблему нужно сделать следующее в классе контроллера:-

  1. Изменить пакет импорт из " импорт орг.springframework.веб.портлета.ModelAndView; в" чтобы " импорт орг.springframework.веб.сервлет.ModelAndView; в"...
  2. Перекомпилировать и запустить код... проблему должны решить.
 Jens
Jens
Редактировал ответ 21-го июня 2016 в 8:36
-1
0
Похожие сообщества 3
SpringRole Русский ЧАТ
SpringRole Русский ЧАТ
19 пользователей
Открыть telegram
Spring Framework – русскоговорящее сообщество
Spring Framework – русскоговорящее сообщество
13 пользователей
Общаемся на темы, посвященные Spring, Spring Cloud, Spring Boot, Spring Data, Spring Security и т.д. Вакансии и поиск работы: @spring_jobs См. также: @backend_ru @devops_ru @php_jobs @devops_jobs
Открыть telegram
Spring Framework – вакансии и резюме
Spring Framework – вакансии и резюме
9 пользователей
Вакансии и поиск работы – Spring, Spring Cloud, Spring Boot, Spring Data, Spring Security и т.д. Профессиональное общение по технологиям: @spring_ru См. также: @backend_ru @devops_ru @php_jobs @devops_jobs
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
JA
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией