Jsf 2 Richfaces 4.1和a4j:推送:如何让它工作?
有没有人在像我这样的模拟环境中使用a4j:push标签Jsf 2 Richfaces 4.1和a4j:推送:如何让它工作?,jsf-2,richfaces,Jsf 2,Richfaces,有没有人在像我这样的模拟环境中使用a4j:push标签 Richfaces 4.1-决赛 MyFaces 2.1.5 大气0.83 Tomcat 7.0.23 欢迎提出任何建议 谢谢, 米洛·范德泽 这是我测试的内容: web.xml(编辑:已修复): 以及: test.xhtml: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1
- Richfaces 4.1-决赛
- MyFaces 2.1.5
- 大气0.83
- Tomcat 7.0.23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.org/rich"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:head>
</h:head>
<h:body>
<h:form>
<a4j:push id="push" address="push" onerror="alert(event.rf.data)">
<a4j:ajax event="dataavailable" render="now" execute="@none"/>
</a4j:push>
Tijd: <h:outputText id="now" value="#{testPushBean.now}"/><br/>
<a4j:commandButton value="event" actionListener="#{testPushBean.push()}"/>
</h:form>
</h:body>
</html>
Tijd:
对于使用Servlets API 2.5的用户,此论坛帖子可能会很有用
(使用版本为2.5的web.xml时也会出现问题):
顺便说一句,您的具体问题可能是:
将大气0.8.0-RC1与RichFaces 4.1.0.Final一起使用,因为大气0.8.3的API与RC1不兼容
否则我需要提供一些症状。非常感谢。这导致了一个工作推送环境:)我将用修复程序更新我的问题。
package com.vetmanager.base.test;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.apache.log4j.Logger;
import org.richfaces.application.push.MessageException;
import org.richfaces.application.push.TopicKey;
import org.richfaces.application.push.TopicsContext;
/**
*
*/
@ManagedBean
@SessionScoped
public class TestPushBean {
private static final Logger LOGGER = Logger.getLogger(TestPushBean.class.getName());
private static final TopicKey TOPIC_KEY = new TopicKey("push");
/**
* Constructor init's the topic.
*/
public TestPushBean() {
LOGGER.debug("TestPushBean");
TopicsContext topicsContext = TopicsContext.lookup();
topicsContext.getOrCreateTopic(TOPIC_KEY);
}
/**
* @return String
*/
public String getNow() {
LOGGER.debug("getNow");
Calendar now = Calendar.getInstance();
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MMM-yyyy/HH:mm:ss");
return dateFormatter.format(now.getTime());
}
/**
*
*/
public void push() {
LOGGER.debug("push");
TopicsContext topicsContext = TopicsContext.lookup();
try {
topicsContext.publish(TOPIC_KEY, "Test String");
} catch (MessageException e) {
LOGGER.error("push: " + e, e);
}
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.org/rich"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:head>
</h:head>
<h:body>
<h:form>
<a4j:push id="push" address="push" onerror="alert(event.rf.data)">
<a4j:ajax event="dataavailable" render="now" execute="@none"/>
</a4j:push>
Tijd: <h:outputText id="now" value="#{testPushBean.now}"/><br/>
<a4j:commandButton value="event" actionListener="#{testPushBean.push()}"/>
</h:form>
</h:body>
</html>