目标p:remoteCommand,其中包含ui:composition中的cc:属性

时间:2017-08-22 13:30:06

标签: jsf primefaces facelets

我尝试使用ui:composition构建自己的JSF组件。当我使用一个针对remoteCommand(Primefaces)的action-attribute时,我遇到了一些问题:只要我在h:form中使用该组件的所有元素的action属性,我的代码似乎都有用。但是,当我仅对某些元素使用action属性时,我的bean的方法永远不会被调用任何元素。

这是我的代码:

1,

FOR u IN user
  LET content = (
    FOR node, edge, path IN 1..10
    ANY u._id
    post, repost, comment, user_mention, post_mention
      FILTER node.created_at >= @timestamp
      RETURN node)
  RETURN {user: u, content}

2,

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html   xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://xmlns.jcp.org/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:cc="http://java.sun.com/jsf/composite"
        xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body>
    <ui:composition>
        <cc:interface>
            <cc:attribute name="id" />
            <cc:attribute name="action" targets="remote" />
        </cc:interface>
        <cc:implementation>
            <p:remoteCommand id="remote" name="remoteCommand" />
            <input onclick="remoteCommand();" />
        </cc:implementation>
    </ui:composition>
</h:body>
</html>

之前的代码不起作用!当我单击第一个输入字段时,我的bean方法不会被执行。

但是,当我在第二个输入字段中包含action属性时,我的bean方法被执行:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html   xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://xmlns.jcp.org/jsf/html"
        xmlns:p="http://primefaces.org/ui"
        xmlns:mycomponent="http://java.sun.com/jsf/composite/composites">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <h:outputStylesheet library="styles" name="ownContainers.css"  />
</h:head>
<h:body>
    <h:form> 
        <mycomponent:input action="#{testBean.test()}" />
        <mycomponent:input />
    </h:form>
</h:body>
</html>

当我只需要某些元素的action属性而不是其他元素时,我该怎么办?为什么第一个例子不起作用?

0 个答案:

没有答案