如何将outputtext传递给其他表单

时间:2014-01-29 13:04:44

标签: jsf

这很简单。但是outputtext不会传递给另一个函数或表单。输入文本当然有效,但看起来很难看。

我应该用output?

替换outputtext
<h:form>
<h:outputtext value="xx" />

<h:commandButton action="#{serviceTest.function() }" value="test"
                </h:commandButton>

</h:form>

真实世界的例子

<p:column id="average" sortBy="#{resultClub.stringAverage}">
                    <f:facet name="header">Snitt</f:facet>
                    <h:outputText id="testing" value="#{resultClub.stringAverage}" />
                    <h:inputHidden id="hiddenAvg" value="#{resultClub.stringAverage}" />
                </p:column>         

javax.faces.component.UpdateModelException: javax.el.PropertyNotFoundException: /hcp/showAverages.xhtml @96,74 value="#{resultClub.stringAverage}": Property 'stringAverage' not writable on type com.jk.hcp.ResultClub
    javax.faces.component.UIInput.updateModel(UIInput.java:867)
    javax.faces.component.UIInput.processUpdates(UIInput.java:749)
    org.primefaces.component.api.UIData.process(UIData.java:328)

3 个答案:

答案 0 :(得分:0)

如果要在单击commandButton后提交“xx”值,可以使用隐藏字段

<h:inputHidden value="some text" />

或者您可以使用

<h:inputText readonly="true" />

将在输入文本中呈现用户无法更改的文本(可能看起来像outputText),但在单击按钮后将提交其值。

答案 1 :(得分:0)

我的理解是你想在按下按钮后查看输出文本中的一些数据,对吧? 如果我弄错了,请告诉我删除答案!

在这种情况下,您需要使按钮在单击时呈现输出字段:

的outputText:

<h:outputText id="text1" value="#{serviceTest.text1Value}" />

按钮:

<a4j:commandButton value="click me"
    action="#{serviceTest.function() }" value="test"
    render="text1" >
</a4j:commandButton>

正如您所看到的,我使用了a4j:commandButton,这使我能够在点击时通过ID呈现页面上的任何元素。

答案 2 :(得分:0)

在你向我描述了这个问题之后,我为你弄清楚了......
你可以使用javascript

来做到这一点

<强>的outputText:

<h:outputText id="text1" value="xx" />

按钮:

<h:commandButton value="click me"
    action="#{serviceTest.function()}" value="test"
    onclick="submitFieldValue()" >
</h:commandButton>

<强> XHTML:
这将在您的控制器中设置myfield实例变量。它基本上会在编译时生成一个java脚本函数,它可以调用控制器。

<a4j:jsFunction name="setTheValue">
    <a4j:actionparam name="param" assignTo="#{serviceTest.myfield}"/>
</a4j:jsFunction>

<强> JavaScript的:
这将使用outputtext值

调用setTheValue
function submitFieldValue(){
var x = document.getElementById("text1").value;
setTheValue(x);
}