如何获取查询字符串

时间:2011-09-07 19:20:02

标签: jsf query-string

我正在使用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;
        }
    }

编辑2:好的,所以我使用了错误的方法。 hsr.getParameter()可以解决问题

2 个答案:

答案 0 :(得分:4)

for JSF go

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

答案 1 :(得分:3)

如果你想要一个特定的参数,把它注入你的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>

如果要引用参数的bean在更广泛的范围内,您可以从外部上下文(parameter; parameters)查找。

如果您真的想要查询字符串,可以使用表达式#{request.queryString}从请求中注入that