Как я могу получить строку запроса - PullRequest
4 голосов
/ 07 сентября 2011

Я использую jsf 1.1 и icefaces 1.8. У меня есть страница PartsInv.jsp и управляемый компонент PartsInv.java. Я пытался возиться с несколькими классами, основанными на хитах Google, с которыми я сталкивался, и чувствую, что подхожу близко, но я не могу это сгубить Вот что у меня есть:

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

Но, конечно, hsrw не создан должным образом. Я не совсем уверен, как (или что обернуть). Любая помощь будет оценена.

Редактировать : Исходя из ответа Джигара, я обновил свой код до следующего:

    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() делает трюк

Ответы [ 2 ]

4 голосов
/ 07 сентября 2011

для JSF go

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
3 голосов
/ 08 сентября 2011

Если вы хотите определенный параметр, вставьте его в ваш 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-компонент, к которому вы хотите обратиться к параметру, находится в более широкой области, вы можете найти его во внешнем контексте ( параметр ; параметры ).

Если вы действительно хотите строку запроса, вы, вероятно, можете вставить , что из запроса, используя выражение #{request.queryString}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...