首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在自定义标记中传递动作侦听器事件中的参数

在自定义标记中传递动作侦听器事件中的参数
EN

Stack Overflow用户
提问于 2019-11-20 08:11:29
回答 1查看 171关注 0票数 0

在继续构建自定义标记时,除了将参数传递给been方法之外,所有进程都已完成并正在准确工作。我试过了,但无法传递参数,下面是代码。

web.xml

代码语言:javascript
复制
    <context-param>
        <param-name>facelets.LIBRARIES</param-name>
        <param-value>/WEB-INF/pinnacleTags.taglib.xml</param-value>
    </context-param>

塔比卜

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib>
    <namespace>pinnacleTags/facelets</namespace>
    <tag>
        <tag-name>PinnacleCombo</tag-name>
        <source>buttonPanel.xhtml</source>
        <attribute>
            <name>textBoxValue</name>
        </attribute>
        <attribute>
            <name>caption</name>
        </attribute>
        <attribute>
            <name>btnCaption</name>
        </attribute>
        <attribute>
            <name>textBoxWidth</name>
        </attribute>
        <attribute>
            <name>btnHeight</name>
        </attribute>
        <attribute>
            <name>btnWidth</name>
        </attribute>
        <attribute>
            <name>actionListenerBean</name>
        </attribute>
        <attribute>
            <name>actionListenerBean</name>
            <method-signature>void actionListener(javax.faces.event.ActionEvent)</method-signature>
        </attribute>
        <attribute>
            <name>actionListenerMethod</name>
            <method-signature>method-signature="java.lang.String action(javax.faces.event.ActionEvent)"</method-signature>
        </attribute>
    </tag>
</facelet-taglib>

组件

代码语言:javascript
复制
        <ui:composition> 
            <div>
                <h:outputLabel value="#{caption}" />
                <p:inputText value="#{textBoxValue}" style="width: #{textBoxWidth}; " />
                <p:commandButton type = "submit" 
                                 value = "#{btnCaption}" 
                                 actionListener="#{actionListenerBean[actionListenerMethod]}"
                                 style="height: #{btnHeight}; width: #{btnWidth};" />
            </div>
        </ui:composition>

最后是使用

代码语言:javascript
复制
            <pt:PinnacleCombo id="clientID" 
                                textBoxValue="#{customTags.clientID}"
                                caption="Client ID: " 
                                textBoxWidth="150px" 
                                btnHeight="35px" 
                                btnCaption="Press"
                                actionListenerBean="#{customTags}"
                                actionListenerMethod="btnPressed"/>

我不知道如何把参数传递给薄荷糖,请建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-22 11:20:30

最后,正如@Selaron所建议的那样,自定义标签在使用总括之后是

代码语言:javascript
复制
        <ui:composition> 
            <h:outputLabel value="#{caption}" />
            <p:inputText value="#{textBoxValue}" style="width: #{textBoxWidth}; " />
            <o:methodParam name="method" value="#{actionListenerBeanMethod}" />
            <p:commandButton type = "submit" 
                             value = "#{btnCaption}" 
                             actionListener="#{method}"
                             style="height: #{btnHeight}; width: #{btnWidth};" />
        </ui:composition>

函数调用很简单

代码语言:javascript
复制
actionListenerBeanMethod="#{customTags.btnPressed('Value Passed')}"

Thanx @Selaron寻求帮助。

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

https://stackoverflow.com/questions/58949518

复制
相关文章

相似问题

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