2016-03-22 5 views
0

OptionGroupModelとOptionModelを使用してgroupListingをタペストリーで実現したいと思います。 SelectModelImplでNULLポインターエラーが発生します。 私はどこでこれが間違っているのかわかりません。もう1つは、別の方法でグループに表示すると、選択されていないモデルが選択解除されたときに選択解除されたままページを更新するということです。次のようにTapestry:org.apache.tapestry5.internal.util.SelectModelRenderer.option(SelectModelRenderer.java:49)のjava.lang.NullPointerException

<div t:type="ck/Tooltip" title="${message:savedCriteria.ttpTitle}" value="${message:savedCriteria.ttpValue}" effect="appear"> 
    <t:select t:id="SavedCriteria" validate="required" model="savedCriteria" value="prop:currentCriteria" t:mixins="OnSelectChangeActionLink"  optionModels="savedCriteria.options" selectChangeEncoder="singleValueEncoder" /> 
</div> 

formularsをつかむためのコードは次のとおりです。

public SelectModel getFormulas() throws Exception { 
    //return new SelectModelImpl(createOptionGroups(getFormulaList(), getFormulaLabelList()), null); 
    //return new SelectModelImpl(selectService.getFormulaGroupByWhereClause("T_FORMULALIST", "ID", "FORMULANAME", "LOCALEPARENT", LanguageQueries.getLanguageByCode(getUserLanguage()), "showInAnalyzer", true, this.listFormulas), null); 

    return new AbstractSelectModel() { 

     private List<OptionGroupModel> groupModels = null; 

     public List<OptionModel> getOptions() { 
      return null; 
     } 

     public List<OptionGroupModel> getOptionGroups() { 
      if (groupModels == null) { 
       computeModel(); 
      } 
      return groupModels; 
     } 

     private void computeModel() { 
      groupModels = createOptionGroups(getFormulaList(), getFormulaLabelList()); 
     } 
    }; 
} 

private List<OptionGroupModel> createOptionGroups(LinkedHashMap<String, Integer> formulaList, LinkedHashMap<String, String> formulaLabelList) 
{ 
    final List<OptionGroupModel> optGroupList = new ArrayList<OptionGroupModel>(); 
    for (Iterator<?> iterator = formulaLabelList.keySet().iterator(); iterator.hasNext();) { 
     String key = (String) iterator.next(); 
     String group = formulaLabelList.get(key); 
     List<OptionModel> optList = new ArrayList<OptionModel>(); 
     for (Iterator<?> i = formulaList.keySet().iterator(); i.hasNext();) { 
      String optionKey = (String) i.next(); 
      Integer option = formulaList.get(optionKey); 
      String optionCompare = formulaList.get(optionKey).toString(); 
      if(key.equalsIgnoreCase("Uncategorized") && option == null){ 
       optList.add(new OptionModelImpl(optionKey, option)); 
      } else if((optionCompare.contains(group)) && !(optionKey.contains("*"))) { 
       optList.add(new OptionModelImpl(optionKey, option)); 
      } 
     } 
     if(optList.size() > 0) { 
      OptionGroupModel groupModel = new OptionGroupModelImpl(key, false, optList); 
      optGroupList.add(groupModel); 
     } 
    } 
    return optGroupList; 
} 

は親切に私が間違っているつもりですどこ私がアシスト。私が達成したいのは、アイテムを選択するときに、私も利用可能なリストに戻す必要があります。

答えて

0

結果を選択した側に移動するjavascriptファイルを作成して解決しました。また、タグを使用してjavacriptファイルにグループを作成します。

関連する問題