2014-11-24 55 views
0

我有這樣一個類似的問題:DefaultMenuItem with a value from a .properties file (resource bundle)Pbreadcrumb DefaultMenuItem與來自屬性文件的值(資源束)

我升級到primefaces 5.0和創建的動態麪包屑,但是當我設置項的值我的國土資源包的消息,顯示爲喜歡的字符串:

#{message.label_register_document}

而不是內部對關鍵價值......在這種情況下 label_register_document=registrar documento 預期的行爲是應顯示registrar documento這是束消息的價值...

我與靜態

<p:breadCrumb> 
    <p:menuitem value="#{message.label_register_document}" url="#" /> 
    <p:menuitem value="#{message.label_register_category}" url="#" />   
</p:breadCrumb> 

測試和它的作品如我所料。但是當我這樣設置的菜單項的值:

DefaultMenuItem item = new DefaultMenuItem(); item.setValue("#{"+value+"}"); item.setId(Integer.toString(this.migas.getElements().size())); item.setOnclick(ConstantesErp.FUNCION_STATUS); item.setCommand("#{"+action+"}"); this.migas.addElement(item);

其中值是:message.label_register_document

不能正常工作。有什麼建議麼?

上傳:對不起,我的英文。

+0

如果有人需要的答案,我解決了這個並張貼在這裏的答案:http://stackoverflow.com/questions/21914562/defaultmenuitem-與-a值從 - 一 - 屬性 - 文件的資源束 – Hernan 2014-12-12 16:08:50

回答

0

如果有人需要我解決了這樣的答案:

public void addMiga(String action, String label) throws Exception { 
    DefaultMenuItem item = new DefaultMenuItem(); 
    item.setFragment(label); 
    String valueTitulo = ""; 
    HtmlOutputText seccionLabel = new HtmlOutputText(); 
    if (label != null && !"".equals(label)) { 
     String[] expresiones = label.split(","); 
     for (String expresion : expresiones) { 
      if (expresion.contains("label_") 
        || expresion.contains("_label")) { 
       seccionLabel.setValueExpression("value", 
         getValueExpression(expresion)); 

      } else { 
       seccionLabel.setValue(expresion); 
      } 
      valueTitulo += " " + (String) seccionLabel.getValue(); 
     } 
    } 
    item.setValue(valueTitulo); 
    item.setId(Integer.toString(this.migas.getElements().size())); 
    item.setOnclick(ConstantesErp.FUNCION_STATUS); 
    item.setCommand(action); 
    item.setAjax(false); 
    this.migas.addElement(item); 
} 

    public static ValueExpression getValueExpression(String nombre) { 
      FacesContext fc = FacesContext.getCurrentInstance(); 
      Application app = fc.getApplication(); 
      ELContext elContext = fc.getELContext(); 
      ExpressionFactory factory = app.getExpressionFactory(); 
      ValueExpression ve = null; 
      try { 
       ve = factory.createValueExpression(elContext, "#" + "{" + nombre 
         + "}", String.class); 
      } catch (Exception e) { 
       ve = null; 
      } 
      return ve; 
     }