没有打电话的塞特包括

时间:2018-05-07 14:14:50

标签: jsf el

我在以下场景中遇到jsf的问题所有的getter都被调用,一切看起来不错,但我无法设置值。

第一个xhtml看起来像这样,manager是一个托管bean,包含一个名为page的容器,我将内容作为ArrayList。:



 <ui:repeat value="${manager.page.content}" var="entry">   
                        <h:panelGroup rendered="${entry.type eq 1}">
                            <ui:include  src="/entries/Question.xhtml">
                                <ui:param name="element" value="${entry}"/>
                            </ui:include>                
                            <br />
                        </h:panelGroup>
</ui:repeat>
&#13;
&#13;
&#13;

包含的xhtml包含以下代码段:

&#13;
&#13;
    <h:panelGrid columns="1">
        <h:form id="foo">
            <h:outputLabel escape="false" value="${element.content}"/>
            <p:textEditor value="${element.answer}"/>
            <p:commandButton value="Submit" update="foo" actionListener="${element.submit}" icon="ui-icon-disk"/>
            
        </h:form>
    </h:panelGrid>
&#13;
&#13;
&#13;

元素属于&#34;问题&#34;看起来像这样:

public class Question implements Content {

private int contentId;
private String content;
private String examplesolution;
private String author;
private Timestamp creation;
private String answer = "FOO";
.... (Here are all getters and setters automatically generated by netbeans)

当我打开页面&#34; Questions.xhtml&#34;按预期包含,包含内容的输出标签正确显示。发短信还具有价值和价值。按预期编写但如果我单击commandButton没有任何反应,则回答的值永远不会改变。

我在一个内容不同的网站上有几个问题对象,因此我认为制作问题Bean不是一个好主意? 谁能发现我犯的错误?

编辑: forgott在Question类中添加submit方法:

public void submit(){ ... } 

它没有什么特别的,只是给我一些日志记录输出

2 个答案:

答案 0 :(得分:0)

您的课程名为“问题”。在xhtml中命名为element,我错过了什么?我没有看到变量“提交”。也许“提交”是方法,然后你需要添加花括号“submit()”。

答案 1 :(得分:0)

也许您应该使用#{}代替${}

  

立即计算的所有表达式都使用$ {}分隔符,并且始终是rvalue表达式。可以延迟评估的表达式使用#{}分隔符,并且可以充当右值和左值表达式。