Получение ошибочно сформированного синтаксиса запроса, неправильного формирования сообщения запроса или вводящей в заблуждение маршрутизации запроса ", когда в форму вводятся неверные данные - PullRequest
0 голосов
/ 22 сентября 2019

Когда я пытаюсь отправить данные формы с неправильным вводом, я получаю эту ошибку "синтаксис неправильного запроса, неправильное формирование кадра сообщения о запросе или обманная маршрутизация запроса" Ожидается, что я должен получить сообщение об ошибке формы HTTP Status 400 - Bad Status Type Status Report

Описание Сервер не может или не будет обрабатывать запрос из-за чего-то, что воспринимается как ошибка клиента (например, синтаксис искаженного запроса, кадрирование недопустимого сообщения запроса или обманчивая маршрутизация запроса).

Мой контроллер:

  package com.tarun.controller;
  import javax.validation.Valid;
  import org.springframework.stereotype.Controller;
  import org.springframework.ui.Model;
  import org.springframework.ui.ModelMap;
  import org.springframework.validation.BindingResult;
  import org.springframework.web.bind.annotation.ModelAttribute;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import org.springframework.web.servlet.ModelAndView;

  import domains.AddressDto;
  @Controller
  @RequestMapping("/entity")
 public class EntityController {
@RequestMapping(value="validateAddress",method=RequestMethod.POST)
public ModelAndView validateAddress(@ModelAttribute("address") @Valid domains.AddressDto address, ModelMap model,BindingResult results) {

      if(results.hasErrors()) { 
          return new ModelAndView("/success/addressSummary");
      }

    return new ModelAndView("/success/addressSummary");
}
@RequestMapping("/addAddress")
public String addAddress(Model model){
    model.addAttribute("address",new AddressDto());
    return "/entity/address";

}
@RequestMapping(value="address")
public AddressDto address() {
    return  new AddressDto();
}

}

Моя страница gsp:

     <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
       pageEncoding="ISO-8859-1"%>
        <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
       <!DOCTYPE html>
      <html>
      <head>
      <meta charset="ISO-8859-1">
       <title>Insert title here</title>
       </head>
     <body>
     <form:form action="validateAddress?${_csrf.parameterName}=${_csrf.token}" 
     modelAttribute="address" method="post">
    Enter your city name:<form:input path="city"/><br>
    Enter your street name:<form:input path="street"/><br>
    Enter your state name:<form:input path="state"/><br>    
    Enter your pinCode name:<form:input path="pinCode"/><form:errors path="pinCode"/><br>
   <input type="submit" value="SUBMIT"/>
  </form:form>
</body>

Мой класс DTO:

   package domains;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.NotNull;
    public class AddressDto {
    private String city;
    private String state;
    private String landMark;
   @NotNull
   private int pinCode ;
   private String street;
   public String getCity() {
    return city;
   }
   public void setCity(String city) {
    this.city = city;
   }
   public String getState() {
    return state;
  }
   public void setState(String state) {
    this.state = state;
  }
   public String getLandMark() {
    return landMark;
  }
   public void setLandMark(String landMark) {
    this.landMark = landMark;
   }
   public int getPinCode() {
    return pinCode;
   }
   public void setPinCode(int pinCode) {
    this.pinCode = pinCode;
   }
   public String getStreet() {
    return street;
   }
   public void setStreet(String street) {
    this.street = street;
   }
  }

Мой сервлет:

     <?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
  http://www.springframework.org/schema/beans/spring-beans.xsd  
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context.xsd 
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc.xsd ">


<!-- telling container to take care of annotations stuff -->
<!--This is for enabling annotation for the matrix variable(multiple criteria 
    for searching) -->
<mvc:annotation-driven
    enable-matrix-variables="true"  validator="validator"/>
<!-- jquery location mapping -->
<mvc:resources mapping="/js/**"
    location="/resources/jsFile/" />
<!--Images location mapping -->
<mvc:resources mapping="/image/**"
    location="/resources/static/images/" />

<!--file upload configuration -->
<bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10240000" />
</bean>

<!-- declaring base package(search for controller(mainly) services and repository 
    classes) -->
<context:component-scan base-package="com.tarun" />


<!-- adding view resolver to show jsp's on browser -->
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>
<!--json and xml view configuration -->
<bean
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="defaultViews">
        <list>
            <ref bean="jsonView" />
            <ref bean="xmlView" />
        </list>
    </property>
</bean>

<bean id="jsonView"
    class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
    <property name="prettyPrint" value="true" />
</bean>

<bean id="xmlView"
    class="org.springframework.web.servlet.view.xml.MarshallingView">
    <constructor-arg>
        <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
            <property name="classesToBeBound">
                <list>
                    <value>domains.ProductDomain</value>
                </list>
            </property>
        </bean>
    </constructor-arg>
</bean>

<!-- used for log and language selection -->
<mvc:interceptors>
    <bean class="config.PerformanceMonitorInterceptor" />
    <bean
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language" />
    </bean>
    <bean class="config.AuditingInterceptor" />
    <bean class="config.PromoCodeInterceptor">
        <property name="offerRedirect" value="product/add" />
        <property name="promoCode" value="DHAMAKA" />
        <property name="erroRedirect" value="errorRedirect" />

    </bean>
</mvc:interceptors>
<!-- declare beans -->

<!--Bin declaration -->
<bean id="repository"
    class="repository.ProductRepositoryImplement" />
<bean id="orderService" class="service.OrderServiceImpl" />

<!--message file configuration -->
<bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/config/messages" />
</bean>
<!--language selection -->
<bean id="localeResolver"
    class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
    <property name="defaultLocale" value="en" />
</bean>
<!--Validation of fields of model class-->
 <bean id="validator"
    class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="validationMessageSource" ref="messageSource"/>
</bean> 


Мой webxml:

   <?xml version="1.0" encoding="UTF-8"?>
   <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee     
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>MeAndYou</display-name>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>



<!--Load spring security config file  -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/security-context.xml
    </param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring security -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...