Форма не отправлена ​​должным образом: сервер не может или не будет обрабатывать запрос из-за того, что воспринимается как ошибка клиента - PullRequest
0 голосов
/ 19 января 2019

Я использую Spring mvc Framework, базу данных postgresSQL и спящий ORM.

Я столкнулся с ошибкой.

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

Это мой контроллер :::

@RequestMapping(value = "/createdistrict")
    public ModelAndView  createdistrict(Locale locale, Model model) {

        List<Division> allDivisionList = new ArrayList<Division>();
        allDivisionList = this.districtService.listdivisions() ;
        Map<Integer,String> allDivision = new LinkedHashMap<Integer,String>();

        for( int i=0 ; i < allDivisionList.size() ; i++) {

            //System.out.println(" division id ::::::::::" + allDivisionList.get(i).getId() + " division name:::::::::" + allDivisionList.get(i).getName());
            allDivision.put(allDivisionList.get(i).getId() , allDivisionList.get(i).getName());
        }
        return new ModelAndView("createdistrict" , "allDivision" , allDivision);
    }

    @PostMapping("/adddistrict")
     public String addDistrict(
             @ModelAttribute("district")District district, 
             Model model,
             @RequestParam("division") int division) {

        System.out.println("id:::::::::::::::::::" + division);
        this.districtService.adddistrict(district, division);
                return "redirect:districtlist";
    }

Это моя модель :::

@Entity
@Table(name = "district")
public class District implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "division_id", referencedColumnName = "id")
    private Division division;

    @Column(name="name")
    private String name;
}

Это страница JSP ::::::

<form method="POST" action="adddistrict" modelAttribute="district">
                <table class="create-table table table-hover">
                 <tr>
                    <td>
                        Division 
                    </td>
                    <td>
                    <select id="division" name="division" path="division.id">
                          <c:forEach items="${allDivision}" var="allDivision">
                          <option class="dropdivision" value="${allDivision.key}">${allDivision.value }</option>
                          </c:forEach>
                    </select> 
                    </td> 
                  </tr>
                  <tr>
                    <td>
                        Name
                    </td>
                    <td>
                        <input type="text" id="name" name="name" path="name"></input>
                    </td> 
                  </tr>
                  <!-- End of single tr -->

                </table>
                <!-- End of table -->
                <div class="button-set text-right">
                  <button type="submit" class="btn site-btn filled-btn" id="savebutton">save</button>
                  <a href="" class="btn site-btn filled-btn">cancel</a>
                  <a href="" class="btn site-btn filled-btn">reset</a>
                </div>
                <!-- End of button-set -->
             </form>

Как мне решить проблему?

1 Ответ

0 голосов
/ 19 января 2019

На вашей странице jsp вы должны использовать taglibs:

сначала включите соответствующие метки (например, для весны):

<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec"%>

то, что вам нужно в вашем JSP, это как минимум следующее:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

затем используйте их в своем jsp:

  • вместо <form ...></form> используйте <form:form></form:form> -Tag
  • вместо <input> используйте <form:input> и т. Д.

Вот (не полный) пример, который должен работать для вас:

<form:form  action="addDistrict" method="post" cssClass="" modelAttribute="district">
    <form:label cssClass="control-label" path="name">Name of District</form:label>
    <div class="controls">
        <t:input cssClass="someCssClass" path="name" id="titelTypeahead" placeholder="(e. g. Ottakring)" />
        <form:errors element="div" path="name" cssClass="alert alert-error" />
    </div>
</form:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...