JSF& Primefaces& IE Ajax不起作用

时间:2013-08-22 15:34:38

标签: jsf primefaces internet-explorer-9

我正在使用JSF Mojarra 2.2.1,Primefaces 4.0 Snapshot和IE 9.这个问题在IE 9中发生,当我用f:ajax替换它时也存在类似的问题,除非我使用@all渲染。当通过ajax请求呈现命令按钮时,它会在以下请求中触发正常请求。我创建了一个简单的代码来说明问题。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">
<h:head>

</h:head>
<h:body>

    <h:form id="testForm">
        <h1>Test of IE9 Ajax</h1>
        Text: <h:outputText value="#{testBean.count}" />
        <br />
        <p:commandButton oncomplete="alert('a')" update=":testForm"
            action="#{testBean.increment}" value="click me">
        </p:commandButton>

    </h:form>

</h:body>
</html>

我的豆子是,

package test;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class TestBean implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private int count = 0;

    public void increment()
    {
        count++;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

}

在测试中,警报仅在奇数处给出,这是ajax呼叫的另一个指示不顺利。

更新:

我意识到这种情况正在发生,因为IE9在替换jquery替换所有方法时忽略了输入'onclick =“javascript”事件。

更新2:

这不会发生在我的家用电脑IE 9(相同版本)中,它只发生在办公室电脑上。我看不到安全设置,你知道为什么会这样吗? Javascript有效,但无法正常运行。

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

请在<h:head>标记内尝试以下代码:

<f:facet name="first">
    <meta http-equiv="X-UA-Compatible" content="edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</f:facet>

让我知道它是否有帮助。

答案 1 :(得分:0)

重置浏览器的安全设置(IE 11)解决了我的问题。不幸的是,我不知道哪个设置对此负责。