0

spring MVC を使用してシステムを構築していますが、現在*.jspページを作成していると、次のエラー メッセージが表示されます。

Invalid property 'flrequest' of bean class [se.lowdin.jetbroker.agent.mvc.FlightRequestBean]: Bean property 'flrequest' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

このコードをflightRequest.jspに入れました:

<tr>    
    <th>Departure Airport</th>
    <td><form:select path="flrequest" items="${airport}"/></td>         
</tr>
<tr>
    <th>Arrival Airport</th>
    <td><form:select path="flrequest" items="${airport}"/></td>
</tr>

そして、私の豆は次のようになります:

public class FlightRequestBean {

    private Customer customer;
    private long id;
    private FlightStatus flightStatus;
    private long numberOfPassengers;
    private DateTime datetime;


    public void copyValuesToBean(FlightRequest request){

        setCustomer(request.getCustomer());
        setId(request.getId());
        setFlightStatus(request.getFlightStatus());
        setNumberOfPassengers(request.getNumberOfPassengers());
        setDatetime(request.getDatetime()); 

    }

    public void copyBeanToFlightRequest(FlightRequest request){

        request.setCustomer(getCustomer());
        request.setId(getId());
        request.setFlightStatus(getFlightStatus());
        request.setNumberOfPassengers(getNumberOfPassengers());
        request.setDatetime(getDatetime());

    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getNumberOfPassengers() {
        return numberOfPassengers;
    }

    public void setNumberOfPassengers(long numberOfPassengers) {
        this.numberOfPassengers = numberOfPassengers;
    }

    public DateTime getDatetime() {
        return datetime;
    }

    public void setDatetime(DateTime datetime) {
        this.datetime = datetime;
    }

    public FlightStatus getFlightStatus() {
        return flightStatus;
    }

    public void setFlightStatus(FlightStatus flightStatus) {
        this.flightStatus = flightStatus;
    }

}

私は自分のform:selectに表示しようとしているモックされた空港を含むハッシュマップもあります。エラーが発生したとき。保持しているインデックスコントローラーには、よく表示される他のリストがありますが、ハッシュマップは表示されません。

@Controller
public class IndexController {

    @Inject
    CustomerService customerService;

    @Inject
    FlightRequestService flightService;

    @Inject
    AirportService airportService;

    @RequestMapping("/index.html")
    public ModelAndView index() {

        List<FlightRequest> requests = flightService.getAllFlightRequest();
        List<Customer> customers = customerService.getAllCustomers();
        HashMap<Long, Airport>airport = airportService.getAllAirportCodes();

        ModelAndView mav = new ModelAndView("index");
        mav.addObject("flightRequests", requests);
        mav.addObject("customers", customers);
        mav.addObject("airportCodes", airport);

        return mav;
    }


}

最後に、flightRequest コントローラーを作成します。

@Controller
@RequestMapping("/flightRequest/{id}.html")
public class FlightRequestController {

    @Inject 
    FlightRequestService service;

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView index(@PathVariable long id) {


        FlightRequestBean bean = new FlightRequestBean();

        if (id > 0) {
            FlightRequest flrequest = service.getFlightRequest(id);
            bean.copyValuesToBean(flrequest);
        }


        ModelAndView mav = new ModelAndView("flightRequest");
        mav.addObject("flightRequestBean", bean);
        return mav;


    }

    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView handleSubmit(FlightRequestBean bean) {


        if (bean.getId() > 0) {
            FlightRequest flrequest = service.getFlightRequest(bean.getId());
            bean.copyBeanToFlightRequest(flrequest);
            service.updateFlightRequest(flrequest);
        } else {
            FlightRequest flrequest = new FlightRequest();
            bean.copyValuesToBean(flrequest);
            service.createFlightRequest(flrequest);
        }

        return new ModelAndView("redirect:/index.html");
    }



}

したがって、どこかにそのエラーメッセージを引き起こす問題があります。誰がその問題の原因が何か手がかりを持っていますか? エラーメッセージは、無効なゲッターとセッターについて何か言っていますか? しかし、ハッシュマップではなくハッシュマップを使用しているため、どうすればよいでしょうか

4

1 に答える 1

1

適切なゲッターとセッターを持つFlightRequestBean属性が必要です。flrequest選択した値はどこかに保存する必要があります。

于 2013-09-19T09:49:49.757 に答える