从jsf页面将数据传输到servlet

时间:2012-07-24 10:36:56

标签: java jsf servlets

我的jsf页面中有一个像这样的输入

<html:inputText id="ResponseOK" value="#{bean.ResponseOK}" binding="#{bean.ResponseOKInput}" /> 

我希望在单击命令按钮时获取servlet中的值(通过request.getParameter(“ResponseOK”))

<html:commandButton value="Valider" action="#{bean.callServlet}"/>

调用函数

public void callServlet()
    {
         String url = "http://localhost:8080/TestOne/Timers";  //servlet
            FacesContext context = FacesContext.getCurrentInstance();  
            try {  

               context.getExternalContext().redirect(url);  

            }catch (Exception e) {  
               e.printStackTrace();  
            }  
            finally{  
               context.responseComplete();  
            }  
    }

不幸的是,在我的servlet变量Ok中,只返回null

protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        String Ok = request.getParameter("ResponseOK");// return null
        System.out.println(timerOk);
        }

非常感谢

1 个答案:

答案 0 :(得分:1)

为了能够从请求中获取属性,输入必须具有name属性:

<html:inputText id="ResponseOK" value="#{bean.ResponseOK}" binding="#{bean.ResponseOKInput}"  name="ResponseOK"/>

<强>更新

我不太熟悉JSF框架,但我认为你的问题是动作按钮。

此按钮不是提交按钮,因此输入的值不会发送到请求。

调用GET请求时,您需要在URL本身中传递参数,因此您需要网址如下所示:

http://localhost:8080/TestOne/Timers?ResponseOK=value

因此,您需要将ResponseOK输入的值传输到callServlet方法。

希望有所帮助。