Ни BindingResult, ни обычный целевой объект для имени компонента при использовании формы: inputtags - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь сделать простую форму отправки, используя теги формы Spring MVC, используя и внутри.

Когда моя форма выглядит следующим образом:

  <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>

<title>Create Coupon</title>
</head>
<body style="background-color:powderblue;">



<h1> Create Coupon </h1>


<form:form action="company/create" method="POST" modelAttribute="theCoupon">

<form:input path="title"/>
<form:input path="startDate"/>
<form:input path="endDate"/>
<form:input path="amount"/>
<form:input path="message"/>
<form:input path="price"/>
<form:input path="image"/>

<input type="submit" value="submit">
</form:form>


</body>
</html>

Я получаю java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'theCoupon' available as request attributeисключение.

при удалении

 <form:input path="title"/>
<form:input path="startDate"/>
<form:input path="endDate"/>
<form:input path="amount"/>
<form:input path="message"/>
<form:input path="price"/>
<form:input path="image"/>

страница, кажется, загружается, я понятия не имею, является ли это реальной причиной ее взлома, есть идеи?

вот какконтроллер выглядит так:

package com.example.CouponProjectCore.rest;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.example.CouponProjectCore.customerDAO.CompanyDAO;
import com.example.CouponProjectCore.customerService.CompanyService;
import com.example.CouponProjectCore.customerService.CouponService;
import com.example.CouponProjectCore.entity.Company;
import com.example.CouponProjectCore.entity.Coupon;
import com.example.CouponProjectCore.entity.CouponType;
import com.example.CouponProjectCore.entity.Customer;

@Controller
@RequestMapping("/company")
public class CompanyController  {

    CompanyService companyService;
    CouponService couponService;

    @Autowired
    public CompanyController(CompanyService companyService) {
        this.companyService = companyService;
    }

    @GetMapping("/showAllCompany")
    public String findAll(Model theModel) {
        List<Company> companies = companyService.findAll(); 
        System.out.println(companies);
        theModel.addAttribute("companies", companies);
    return "showAllCompanies";

    }

    @PostMapping("/company")
    public String save(@ModelAttribute Company company,Model theModel) {
        System.out.println
        ("inside save company method");
        System.out.println(company);
        company.setId(0);
        companyService.save(company);
        System.out.println(company);
        theModel.addAttribute("company",company);
        System.out.println(company);
        return "savedCompany";
    }

    @PostMapping("/add")
    public String newCoupon(Model theModel) {

        theModel.addAttribute("theCoupon", new Coupon());

        return "add";
    }

    @PostMapping("/create")
    public String createNewCoupon(@ModelAttribute("theCoupon") Coupon theCoupon) {

        theCoupon.setId(0);
        couponService.save(theCoupon);


        return "savedCoupon";
    }
}

добавление случайных слов, поэтому мой пост не будет в основном кодом

1 Ответ

0 голосов
/ 12 июня 2019

Что ж, мой ответ до сих пор - удаление тегов и использование тегов html вместо этого, работает нормально.

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