首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不在我的组件中绘制p:组件

不在我的组件中绘制p:组件
EN

Stack Overflow用户
提问于 2016-07-27 06:56:21
回答 1查看 212关注 0票数 0

我创建了一个组件

代码语言:javascript
运行
复制
<cc:interface>
......
</cc:interface>
<cc:implementation>
<cc:implementation>
    <div id="#{cc.clientId}" style="margin: 0; padding: 0; width: 100%;">
        ...
        <p:inputText id="texto" value="#{cc.attrs.value}"
            readonly="#{cc.attrs.readonly}"
            required="#{cc.attrs.required}" 
            maxlength="#{cc.attrs.maxlength}">
        </p:inputText>
        ...
    </div>
</cc:implementation>    </cc:implementation>

此组件在模板中使用,如下所示

代码语言:javascript
运行
复制
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:util="http://java.sun.com/jsf/composite/util"
......
<p:outputLabel val="name" for="foo">
<util:texto id="foo" val="#{bean.text}" required="true" />
......
</html>

但是,在提交表单上,如果p:outputlabel中的for="foo:texto"将图标绘制为红色但不需要图标,则组件foo没有红色边框,p:outputLabel也不显示所需的图标

请告诉我,解决方案是什么,谢谢

PD:请原谅我的英语很差。

EN

回答 1

Stack Overflow用户

发布于 2016-07-27 21:42:48

首先,将所有输入组件放入表单h:中。然后,试试这个:

代码语言:javascript
运行
复制
<!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:cc="http://java.sun.com/jsf/composite"
      xmlns:p="http://primefaces.org/ui">

<cc:interface>
    <cc:attribute name="value" />
    <cc:attribute name="readonly" />
    <cc:attribute name="required" />
    <cc:attribute name="maxlength" />
</cc:interface>

<cc:implementation>
    <div id="#{cc.clientId}:_div" style="margin: 0; padding: 0; width: 100%;">
        <p:inputText id="_input"
                     value="#{cc.attrs.value}"
                     required="#{cc.attrs.required}"
                     maxlength="#{cc.attrs.maxlength}" />
    </div>
</cc:implementation>

</html>

查看:

代码语言:javascript
运行
复制
<h:form id="abcForm">
    <app:test id="abcText"
              value="#{some.thing}"
              required="true"
              maxlength="60" />
</h:form>

这样,您就可以通过ids:abcForm:abcText:_divabcForm:abcText:_input.来访问inputText和div在我的测试中,当提交为空时,inputText变红。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38601167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档