0

次のようなSpringフォームを作成しました。

index.jsp

<a href="/Spring_MVC/order.jsp">Order</a>

注文.jsp

<form:form action="createOrder" method="Post" modelAttribute="order">
        <table>
            <tr>
                <th>
                    Order ID:
                </th>
                <td>
                    <form:input path="order.orderId"/>
                </td>
            </tr>

            <tr>
                <th>
                    Product Name: 
                </th>
                <td>
                    <form:input path="order.productName"/>
                </td>
            </tr>

            <tr>
                <td>
                    <input type="submit" value="Submit"/>
                </td>
            </tr> 

        </table>
    </form:form>

Order.java:

public class Order {

    private String orderId;
    private String productName;

    /**
     * 
     */
    public Order() {


    }

    public Order(String orderId, String productName) {
        super();
        this.orderId = orderId;
        this.productName = productName;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }
}

OrderController.java:

@Controller
public class OrderController {

    private static final Logger logger = Logger.getLogger(LoginController.class.getName());

    /**
     * 
     */
    public OrderController() {
        super();
    }

    @RequestMapping(value = "/createOrder", method=RequestMethod.POST)
    public String createOrder(@ModelAttribute("order")Order order, BindingResult result) {
        logger.log(Level.INFO, "Order ID: " + order.getOrderId());
        logger.log(Level.INFO, "Product Name: " + order.getProductName());

        // Implementation validator

        // Data Binding the form properties to Order field
        if (result.hasErrors()) {
            logger.log(Level.INFO, "Error in Binding Result");
        }

        return "/order";
    }
}

Bean 名の順序で BindingResult もプレーン ターゲット オブジェクトも利用できません。POST をサーバーに戻す前に、GET を使用して Bean 名の順序を作成し、最初に Web に渡す必要がありますか。

助けてください。ありがとう。

4

2 に答える 2

1

問題はJSPページにあります。

入力タグのpath属性でフィールド名を誤って使用しました。

こんな感じになります。

 <form:input path="orderId"/> 

これがお役に立てば幸いです。乾杯。

于 2012-05-31T07:14:49.980 に答える
0

参照に基づいて、タグpath内の属性にはモデル属性名を含めないでください。例えば:inputorder

<form:input path="orderId" />
于 2012-05-31T07:13:45.473 に答える