如何从URL获取参数并将其作为HashMap键JSF传递?环境Glassfish,Java 7,Icefaces

时间:2015-09-04 20:24:04

标签: java jsf hashmap

我需要传递一个关键参数trought URL,如下所示: http://localhost:8080/ProvAt-war/monitor.jsf?&id=77-6 并根据收到的参数77-6显示列表 我通过javascript funtion获取参数

<ui:repeat value="#{provatBean.descargandoHashMap.get(QueryString)}" var="desc" rendered="#{not empty provatBean.descargandoHashMap.get('QueryString')}">
    <h:outputText value="#{desc.descProveedor}"/>
    <h:outputText value="EDI" rendered="#{desc.id_grupo/>
    <h:outputText value=" NO-EDI" rendered="#{desc.id_grupo/>
    <h:outputText value="PERECEDEROS" rendered="#{desc.id_grupo}"/>
</ui:repeat>  

var QueryString = function () {
  var query_string = {};
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
        // If first entry with this name
    if (typeof query_string[pair[0]] === "undefined") {
      query_string[pair[0]] = decodeURIComponent(pair[1]);
        // If second entry with this name
    } else if (typeof query_string[pair[0]] === "string") {
      var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];
      query_string[pair[0]] = arr;
        // If third or later entry with this name
    } else {
      query_string[pair[0]].push(decodeURIComponent(pair[1]));
    }
  } 
  alert(vars[1]);
  return vars[1];  
}();

1 个答案:

答案 0 :(得分:1)

请求的参数已经通过#{param['key']}通过EL提供,其中key是感兴趣的参数名称。你不需要二十几行JavaScript。他们已经解码了。

这是相当基本的。