Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么使用onclick从commandlink调用Ajax函数XMLHttpRequest不';不行?_Java_Jsf_Xmlhttprequest_Commandlink - Fatal编程技术网

Java 为什么使用onclick从commandlink调用Ajax函数XMLHttpRequest不';不行?

Java 为什么使用onclick从commandlink调用Ajax函数XMLHttpRequest不';不行?,java,jsf,xmlhttprequest,commandlink,Java,Jsf,Xmlhttprequest,Commandlink,我的问题是当我调用某个函数而不是在一个确定的div中呈现时,没有发送我的请求。 这是我的职责 <script type="text/javascript"> //<![CDATA[ function ajaxFunction() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); return xmlHttp; } catch (e) { // Internet Ex

我的问题是当我调用某个函数而不是在一个确定的div中呈现时,没有发送我的请求。 这是我的职责

<script type="text/javascript">
//<![CDATA[
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return xmlHttp;
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return xmlHttp;
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
} catch (e) {
alert("Tu navegador no soporta AJAX!");
return false;
}}}
}


function CargarDatos(_pagina,capa) {

var ajax;
ajax = ajaxFunction();
ajax.open("POST", _pagina, true);
ajax.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{

if (ajax.readyState==1){
document.getElementById(capa).innerHTML = " Aguarde por favor...";
}


if (ajax.readyState == 4)
{
document.getElementById(capa).innerHTML =
ajax.responseText;


}}
ajax.send();

}

//
这是我调用这个函数的地方

<li><h:commandLink  action="#{personal.cargarEvento}" onclick="CargarDatos('pages/Politica/nacional/inicio.html','content'); " value="Nacional" >
  • 如果我使用这一行,渲染效果会很好

    <li><h:commandLink  action="#{personal.cargarEvento}" onclick="mojarra.jsfcljs (CargarDatos('pages/Politica/nacional/inicio.html','content')); " value="Nacional" >
    
  • 但是生成一个JavaScript错误,不调用MyBean

    目标是单击某个元素在div中呈现另一个页面,同时在一个bean中执行某个方法

    怎么了


    如何使其工作?

    您混合了一些概念,导致代码毫无意义(您不能在一次单击中同时执行同步和异步请求;请注意,这不是JSF限制,它只是基本的HTML/JS)。请澄清具体的功能要求,以便更好地理解。究竟为什么需要调用action方法?它到底在做什么?为什么您需要在上从JSF外部发送ajax请求?为什么不使用JSF目标的ajax标记,比如JSF 2.x的
    ,或者JSF 1.x的组件库,比如Ajax4jsf?@BalusC Thx,我理解您的观点,在这句话“ajax.open(“POST”),参数true的意思是异步的,但是commandlink在一个线程中隐式调用两个请求。基本上,这个函数在我的主页的一个div上加载一个页面。这就是我需要做的。