我的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);
}
非常感谢
答案 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
方法。
希望有所帮助。