2017-11-27 5 views
0

私はフォームの特定のフィールドに応じて特定のオブジェクトタイプをインスタンス化するSpringを取得しようとしていますが、その方法はわかりません。私は以下のようにURLを解析することにより、それを適切に行うことができる午前:@ModelAttributeアノテーションでマークされたメソッドはフォームデータにアクセスできますか?

@ModelAttribute("order") 
public Order getOrderTypeFromUrl(final HttpServletRequest request) 
{ 
    String url = request.getRequestURI(); 
    String type = url.substring(url.lastIndexOf("-") + 1, url.length()); 
    switch (type) 
    { 
     case "PRNOrder" : return new PRNOrder(); 
     case "Frequency Scheduled Order" : return new FrequencyScheduledOrder(); 
    } 
    return null; 
} 

しかし、私はもはや順序は、ユーザーが追加されたタイプ含んでいないために私のURLを変更するには探しています。私は、このメソッドは、フォームには、コントローラに提出されたが、私はどのようなパラメータは、これを達成するために私のメソッドに追加するか分からないフィールドにアクセスしたいと思います。要求オブジェクトのパラメータと属性にはフォームデータが含まれていません。

おかげ

答えて

0

が判明し、この作品罰金ご注文のタイプを含むYOUR隠しテキストフィールドのIDと名前をSET提供!!!! (今日のコーディングを停止する時間!):

@ModelAttribute("order") 
public Order getOrderTypeFromRequest(final HttpServletRequest request, final Model model) 
{ 
    try 
    { 
     String orderType = request.getParameter("type"); 
     switch (orderType) 
     { 
      case "PRNOrder" : return new PRNOrder(); 
      case "frequencyScheduledOrder" : return new FrequencyScheduledOrder(); 
     } 
    } 
    catch (Exception ex) 
    { 
     return null; 
    } 
    return null; 
} 
関連する問題