在我们的JSF应用程序(MyFaces Trinidad)中,我们点击链接,将启动使用aspx(http://crd-dev:1890/Timeandreviews/Login.aspx)运行的应用程序。由于我们已经对用户进行了身份验证,因此我们必须将用户ID传递给ASPX应用程序。他们不希望在URL中收到这个GET参数,他们需要它作为POST数据。可以将其作为POST数据发送吗? 如果可能的话,如何发送JSF以及如何在ASPX中读取它。
我在JSF(.XHTML页面)中尝试过如下设置
mysql_query("INSERT INTO utenti (id,psw,nome,cognome,email,cellulare) VALUES (NULL,'$psw','$nome','$cognome','$email','$cell')"); //costruzione comando di ricerca
尝试在aspx中阅读 方法1:
ExternalContext ext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest httpRequest = (HttpServletRequest) ext.getRequest();
HttpSession httpSession = (HttpSession) ext.getSession(true);
httpRequest.setAttribute("USER_HTREQ", "TST_USR");
httpSession.setAttribute("USER_HTSES", "TST_USR");
ext.getRequestMap().put("USER_REQMP", "TST_USR");
try {
ext.redirect("http://crd-dev:1890/Timeandreviews/Login.aspx");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
方法2:string[] keys = Request.Form.AllKeys;
for (int i= 0; i < keys.Length; i++)
{
Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
}
但他们两个都在工作。请帮忙
答案 0 :(得分:0)
由于您不需要发布数据,但也需要重定向用户,因此Apache HttpClient无法为您提供帮助。
最简单的解决方案是创建一个带有隐藏输入的表单,填充它们并发布表单。
<form method="post" id="form-id"
action="http://crd-dev:1890/Timeandreviews/Login.aspx">
<input type="hidden" name="input-id" id="input-id"/>
etc.
</form>
您可以通过以下方式添加来自bean的Javascripts:
String script = "document.getElementById('input-id').value = 'value';"
+ "document.getElementById('form-id').submit();";
FacesContext fctx = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks =
Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
erks.addScript(fctx, script);