jsf-2 – 在表单提交期间不处理ui:repeat中动态添加的输入字段
发布时间:2020-12-14 23:36:09 所属栏目:资源 来源:网络整理
导读:我试图在我的应用程序中为答案创建一个输入表单,然后从四个“空”答案开始,视图循环并为其创建输入字段.我有一个添加答案按钮,我将一个问题添加到答案数组,然后视图再次呈现答案,但现在有一个额外的输入字段.支持bean是视图编组的.但是,如果我在没有按下添加
我试图在我的应用程序中为答案创建一个输入表单,然后从四个“空”答案开始,视图循环并为其创建输入字段.我有一个添加答案按钮,我将一个问题添加到答案数组,然后视图再次呈现答案,但现在有一个额外的输入字段.支持bean是视图编组的.但是,如果我在没有按下添加答案按钮的情况下提交表单,则一切正常.数据保存在数据库中.但是如果我在四个填写完后添加答案,则最后一个不会从输入字段中获取数据(answer.description).如果我先按下添加答案(不填写任何输入字段),则根本不会捕获字段中的数据,所有数据都为空,因此数据库中不会保存任何数据.
我有以下形式: <ui:repeat var="answer" value="#{bean.answers}"> <div class="field"> <h:outputLabel for="answerAlternative-#{answer.serialNumber}" value="Svaralternativ #{answer.serialNumber}" /> <h:inputText id="answerAlternative-#{answer.serialNumber}" value="#{answer.description}" size="40" /> </div> </ui:repeat> 这是创建新输入字段的方法: public String addAnswer() { if (answers.size() + 1 < 6) { Answer answer = new Answer(); answer.setSerialNumber(answerSerialNumber + ""); answerSerialNumber++; answers.add(answer); } return null; } 用于使用四个空输入字段初始化answers数组: @PostConstruct public void initBean() { answers = new ArrayList<Answer>(); for (int i = 0; i < 4; i++) { addAnswer(); } } 解决方法
这看起来与< ui:repeat>的当前问题相匹配在莫哈拉.在Mojarra是
totally broken.
你基本上有两个选择: >将Mojarra替换为MyFaces,这样可以更稳定地实施< ui:repeat>. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |