2014-09-12 1 views
0

У меня есть следующий JSF составного компонент:Как вернуть значение из резервного компонента в качестве атрибута составного компонента

<composite:interface componentType="myComp"> 
    <composite:attribute name="input" type="java.lang.Integer" /> 
    <composite:attribute name="output" type="java.lang.Integer" /> 
    <composite:attribute name="action" method-signature="java.lang.String action()"/> 
</composite:interface> 
<composite:implementation> 
    <h:inputText id="input" value="#{cc.attrs.input}" /> 
</composite:implementation> 

Предполагая, что композит вызываются в

<h:form id="form"> 
    <cc:myComposite id="cc" input="#{bean.input}" 
        output="#{bean.output}" action="#{bean.action}" /> 
</h:form> 

После bean.action вызывается он устанавливает значение в bean.output. Мне нужно, чтобы получить это значение в моей JavaScript, что-то вроде этого

document.getElementById('form:cc:output').value 

От MYCOMP я могу установить атрибут с

getAttributes().put("output", output); 

Но данные хранятся во вспомогательном компоненте. Есть идеи?

ответ

0

Вам нужен компонент для отправки значения «output» в being-компонент. Используйте inputHidden для достижения этой цели:

<composite:interface componentType="myComp"> 
    <composite:attribute name="input" type="java.lang.Integer" /> 
    <composite:attribute name="output" type="java.lang.Integer" /> 
    <composite:attribute name="action" method-signature="java.lang.String action()"/> 
</composite:interface> 
<composite:implementation> 
    <h:inputText id="input" value="#{cc.attrs.input}" /> 
    <h:inputHidden id="output" value="#{cc.attrs.output}" /> 
</composite:implementation> 

Тогда вы будете иметь возможность установить значение «выход», используя свой скрытый элемент ввода с помощью JavaScript.

+0

Вы хотите установить выходной атрибут через javascript или получить его? Я ищу последнее, что-то вроде 'var x = document.getElementById ('form: cc: output'). Value;' – ps0604

+0

Это будет работать как для установки, так и для извлечения. – codeturner

+0

Спасибо, отлично поработал – ps0604

 Смежные вопросы

  • Нет связанных вопросов^_^