为什么 JSF + Tomahawk App 生成 MYSQL 数据库中所有空字段的记录
以下内容有效,但是当单击创建按钮时,它会提交一条包含所有空字段的记录,
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>New Movie</title>
<link rel="stylesheet" type="text/css" href="/diamondfilms.com.ar/faces/jsfcrud.css" />
</head>
<body>
<h:panelGroup id="messagePanel" layout="block">
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
</h:panelGroup>
<h1>New Movie</h1>
<h:form>
<h:inputHidden id="validateCreateField" validator="#{movie.validateCreate}" value="value"/>
<h:panelGrid columns="2">
<h:outputText value="Name:"/>
<h:inputText id="name" value="#{movie.movie.name}" title="Name" />
<h:outputText value="Sinopsis:"/>
<h:inputText id="sinopsis" value="#{movie.movie.sinopsis}" title="Sinopsis" />
<h:outputText value="Cast:"/>
<h:inputText id="cast" value="#{movie.movie.cast}" title="Cast" />
<h:outputText value="Trailer:"/>
<h:inputText id="trailer" value="#{movie.movie.trailer}" title="Trailer" />
<h:outputText value="Release:"/>
<h:selectOneRadio id="release" value="#{movie.movie.release}" title="Release">
<f:selectItem itemLabel="YES" itemValue="S" />
<f:selectItem itemLabel="NO" itemValue="N" />
</h:selectOneRadio>
<h:outputText value="Facebook Button:"/>
<h:inputText id="imagen6" value="#{movie.movie.facebookButton}" title="Image6" />
<h:form id="calendarForm2">
<h:outputLabel for="releaseDate" value="Date (MM/dd/yyyy HH:mm:ss): "/>
<t:inputCalendar id="releaseDate" monthYearRowClass="yearMonthHeader" weekRowClass="weekHeader" popupButtonStyleClass="standard_bold"
currentDayCellClass="currentDayCell" value="#{movie.movie.releaseDate}" renderAsPopup="true"
popupTodayString="Hoy :"
popupDateFormat="MM/dd/yyyy" popupWeekString="Semana :"
helpText="MM/DD/YYYY"
forceId="true">
<f:convertDateTime pattern="MM/dd/yyyy HH:mm:ss" />
</t:inputCalendar>
</h:form>
</h:panelGrid>
</h:form>
<h:form id="uploadForm1" enctype="multipart/form-data" >
<h:outputText value="Image1:"/>
<t:inputFileUpload id="file" value="#{movie.upLoad.upFile}" required="true" />
<h:commandButton value="Upload" action="#{movie.upLoadFile}" />
</h:form>
<h:form>
<br />
<h:commandLink action="#{movie.create}" value="Create"/>
<br />
<br />
<h:commandLink action="#{movie.listSetup}" value="Show All Movie Items" immediate="true"/>
<br />
<br />
<h:commandLink value="Index" action="welcome" immediate="true" />
</h:form>
</body>
</html>
其中:
private MovieFacade jpaController = null;
@Resource
private UserTransaction utx = null;
public String create() {
try {
utx.begin();
} catch (Exception ex) {
}
try {
Exception transactionException = null;
jpaController.create(pelicula);
try {
utx.commit();
} catch (javax.transaction.RollbackException ex) {
transactionException = ex;
} catch (Exception ex) {
}
if (transactionException == null) {
JsfUtil.addSuccessMessage("Movie was successfully created.");
} else {
JsfUtil.ensureAddErrorMessage(transactionException, "A persistence error occurred.");
}
} catch (Exception e) {
try {
utx.rollback();
} catch (Exception ex) {
}
JsfUtil.ensureAddErrorMessage(e, "A persistence error occurred.");
return null;
}
return listSetup();
}
它甚至会验证 非常感谢!!
The following works but when create button is hit is clicked it commits a record with all null filds
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>New Movie</title>
<link rel="stylesheet" type="text/css" href="/diamondfilms.com.ar/faces/jsfcrud.css" />
</head>
<body>
<h:panelGroup id="messagePanel" layout="block">
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
</h:panelGroup>
<h1>New Movie</h1>
<h:form>
<h:inputHidden id="validateCreateField" validator="#{movie.validateCreate}" value="value"/>
<h:panelGrid columns="2">
<h:outputText value="Name:"/>
<h:inputText id="name" value="#{movie.movie.name}" title="Name" />
<h:outputText value="Sinopsis:"/>
<h:inputText id="sinopsis" value="#{movie.movie.sinopsis}" title="Sinopsis" />
<h:outputText value="Cast:"/>
<h:inputText id="cast" value="#{movie.movie.cast}" title="Cast" />
<h:outputText value="Trailer:"/>
<h:inputText id="trailer" value="#{movie.movie.trailer}" title="Trailer" />
<h:outputText value="Release:"/>
<h:selectOneRadio id="release" value="#{movie.movie.release}" title="Release">
<f:selectItem itemLabel="YES" itemValue="S" />
<f:selectItem itemLabel="NO" itemValue="N" />
</h:selectOneRadio>
<h:outputText value="Facebook Button:"/>
<h:inputText id="imagen6" value="#{movie.movie.facebookButton}" title="Image6" />
<h:form id="calendarForm2">
<h:outputLabel for="releaseDate" value="Date (MM/dd/yyyy HH:mm:ss): "/>
<t:inputCalendar id="releaseDate" monthYearRowClass="yearMonthHeader" weekRowClass="weekHeader" popupButtonStyleClass="standard_bold"
currentDayCellClass="currentDayCell" value="#{movie.movie.releaseDate}" renderAsPopup="true"
popupTodayString="Hoy :"
popupDateFormat="MM/dd/yyyy" popupWeekString="Semana :"
helpText="MM/DD/YYYY"
forceId="true">
<f:convertDateTime pattern="MM/dd/yyyy HH:mm:ss" />
</t:inputCalendar>
</h:form>
</h:panelGrid>
</h:form>
<h:form id="uploadForm1" enctype="multipart/form-data" >
<h:outputText value="Image1:"/>
<t:inputFileUpload id="file" value="#{movie.upLoad.upFile}" required="true" />
<h:commandButton value="Upload" action="#{movie.upLoadFile}" />
</h:form>
<h:form>
<br />
<h:commandLink action="#{movie.create}" value="Create"/>
<br />
<br />
<h:commandLink action="#{movie.listSetup}" value="Show All Movie Items" immediate="true"/>
<br />
<br />
<h:commandLink value="Index" action="welcome" immediate="true" />
</h:form>
</body>
</html>
where:
private MovieFacade jpaController = null;
@Resource
private UserTransaction utx = null;
public String create() {
try {
utx.begin();
} catch (Exception ex) {
}
try {
Exception transactionException = null;
jpaController.create(pelicula);
try {
utx.commit();
} catch (javax.transaction.RollbackException ex) {
transactionException = ex;
} catch (Exception ex) {
}
if (transactionException == null) {
JsfUtil.addSuccessMessage("Movie was successfully created.");
} else {
JsfUtil.ensureAddErrorMessage(transactionException, "A persistence error occurred.");
}
} catch (Exception e) {
try {
utx.rollback();
} catch (Exception ex) {
}
JsfUtil.ensureAddErrorMessage(e, "A persistence error occurred.");
return null;
}
return listSetup();
}
It even validates
Thank you very much!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的创建按钮与输入值的形式不同。您需要以与命令链接/按钮相同的形式输入感兴趣的输入。
Your create button is not in the same form as the input values. You need to put the input of interest in the same form as the command link/button.