1
我創建了一個動態表單,用戶可以通過單擊命令按鈕添加多個日曆輸入字段。我的問題是,View和Been之間的連接被中斷。提交表單將返回之前在Bean中創建的日期,而不是用戶提交的日期。如何解決它?動態JSF表單:輸入字段和Bean之間的鏈接不起作用
編輯:更改日期和事後擴展表單而不保存之前導致失去更改的日期(s)。即使使用由@wittakarn提供的包裝對象的解決方案。
編輯:ajax片段似乎是問題,當我拿掉它的工作。
DynamicFormBean:
import java.io.Serializable;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class DynamicformBean implements Serializable {
private static final Logger LOGGER = Logger.getLogger(DynamicformBean.class.getName());
private List<Date> values;
@PostConstruct
public void init() {
values = new LinkedList<>();
values.add(new Date());
}
public void submit() {
// save values in database
LOGGER.info(values.toString());
}
public void extend() {
values.add(new Date());
}
public void setValues(List<Date> values) {
this.values = values;
}
public List<Date> getValues() {
return values;
}
}
筆者認爲:dynamicform.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<f:view xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:body>
<h:form><h2>Dynamicform example</h2>
<ui:repeat value="#{dynamicformBean.values}" var="value">
<p:outputLabel for="mask" value="Mask:" />
<p:calendar id="mask" value="#{value}" pattern="dd.MM.yyyy" mask="true">
<f:convertDateTime pattern="dd.MM.yyyy" timeZone="CET" />
</p:calendar>
<br />
</ui:repeat>
<h:commandButton value="Extend">
<f:ajax listener="#{dynamicformBean.extend}" process="@form" render="@form" />
</h:commandButton>
<h:commandButton action="#{dynamicformBean.submit}" value="Save" />
</h:form>
</h:body>
</f:view>
日誌只是打印當前日期元素。
謝謝,這對保存起作用。但是,通過更改日期並延長表格 - 之前不保存 - 更改後的值將丟失。 我排除了保持模板/ css /頭的東西,有一個最小的工作示例。 – 2014-10-30 07:23:05
我解決了你提出的包裝對象的問題。我有一些使用primefaces命令按鈕和即時選項導致的問題。以下片段解決了以下問題:「
\t \t \t \t ' – 2014-10-30 12:16:44@mbeat很高興能爲您提供幫助。 – wittakarn 2014-10-30 14:14:26