Luc*_*uke 2 facelets jsf-2 uirepeat
我正在尝试在我的应用程序中为答案创建一个输入表单,我从四个"空"答案开始,视图循环并为其创建输入字段.我有一个添加答案按钮,我将一个问题添加到答案数组,然后视图再次呈现答案,但现在有一个额外的输入字段.支持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>
Run Code Online (Sandbox Code Playgroud)
这是创建新输入字段的方法:
public String addAnswer() {
if (answers.size() + 1 < 6) {
Answer answer = new Answer();
answer.setSerialNumber(answerSerialNumber + "");
answerSerialNumber++;
answers.add(answer);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
用于使用四个空输入字段初始化answers数组:
@PostConstruct
public void initBean() {
answers = new ArrayList<Answer>();
for (int i = 0; i < 4; i++) {
addAnswer();
}
}
Run Code Online (Sandbox Code Playgroud)
这看起来与<ui:repeat>Mojarra 当前的问题相匹配.它完全打破在钻嘴鱼科.
你基本上有两个选择:
<ui:repeat>.UIData组件而不是<ui:repeat>例如<h:dataTable>Tomahawk <t:dataList>,PrimeFaces <p:dataList>等.| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |