2011-09-07 121 views
4

我正在使用jsf 1.1和icefaces 1.8。我有一個PartsInv.jsp頁面和一個託管的PartsInv.java bean。我已經嘗試了幾個基於我碰到的谷歌點擊的課程,並且感覺自己越來越接近了,但我無法完全理解它。這是我有:如何獲取查詢字符串

HttpServletRequestWrapper hsrw; 
String rcVal = hsrw.getAttribute("rc").toString(); 

當然hsrw,但沒有正確實例化。我真的不知道如何(或者什麼繞到它)。任何幫助,將不勝感激。

編輯:基於Jigar的回答,我已經更新了我的代碼如下:

HttpServletRequest hsr = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 

    if(hsr.getAttribute("rc") != null) 
    { 
     try 
     { 
      int rc = Integer.parseInt(hsr.getAttribute("rc").toString()); 
      this.SOM_RC.setValue(rc); 
      this.changeRC(null); 
     } 
     catch(NumberFormatException nfe) 
     { 
      this.lblStatus.setValue("eASP error, please see an administrator."); 
      return; 
     } 
    } 

EDIT2:好了,我使用了錯誤的方法。 hsr.getParameter()的伎倆

回答

4

爲JSF如果你想有一個具體的參數去

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
+0

非常感謝!我欠你一個;) –

+0

歡迎您也考慮麥道的 –

3

,它注入到你的bean:如果bean要引用的參數從在

<managed-bean> 
    <managed-bean-name>fooBean</managed-bean-name> 
    <managed-bean-class>foo.FooBean</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    <managed-property> 
    <property-name>bar</property-name> 
    <property-class>java.lang.String</property-class> 
    <value>#{param.bar}</value> 
    </managed-property> 
</managed-bean> 

範圍更廣,您可以從外部環境中查找(parameter; parameters)。

如果您確實需要查詢字符串,則可以使用表達式#{request.queryString}從請求中注入that

+0

Thx的偉大的額外信息!這將派上用場 –