Я написал простую форму и управляемый компонент для хранения данных, отправленных на SQL-сервер. скачал sqljdbc и установил его. Происходит следующее:
javax.servlet.ServletException: Cannot format given Object as a Date
не уверены, что на самом деле происходит ...
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Reservation Request</title>
</h:head>
<body>
<h:form>
<h2>Event Details:</h2>
<table cellspacing="10">
<tr>
<td>
Event Title:
</td>
<td>
<p:inputText id="eventTitle" value="#{formData.eventTitle}"/>
</td>
</tr>
</table>
<table>
<tr>
<td>
<p:tab title="startDate">
<h:panelGrid columns="2" cellpadding="10">
<label>Start Date</label>
<p:calendar value="#{formData.startDate}}" required="true" />
<h:message for="startDate" />
</h:panelGrid>
</p:tab>
</td>
<td>
<p:tab title="endDate">
<h:panelGrid columns="2" cellpadding="10">
<label>End Date</label>
<p:calendar value="#{formData.endDate}" required="true" />
<h:message for="endDate" />
</h:panelGrid>
</p:tab>
</td>
</tr>
<tr>
<td>
Request Type/Purpose:
</td>
</tr>
<tr>
<td>
<h:selectOneMenu id="purposeOption"
required="true"
value="#{formData.requestType}">
<f:selectItem
itemValue="#{formData.projectOption}"
itemLabel="Project"/>
<f:selectItem
itemValue="#{formData.trainingOption}"
itemLabel="Training"/>
</h:selectOneMenu>
</td>
</tr>
</table>
<table cellspacing="10">
<tr>
<td>
Workstations Required:
</td>
<td>
<p:inputText value="#{formData.terminalsRequired}" id="terminals"/>
</td>
</tr>
</table>
<br></br>
<h2>Requester Information:</h2>
<table cellspacing="10">
<tr>
<td>
Last Name:
</td>
<td>
<p:inputText value="#{formData.lastName}" id="lastName"/>
</td>
<td>
First Name:
</td>
<td>
<p:inputText value="#{formData.firstName}" id="firstName"/>
</td>
<td>
M.I:
</td>
<td>
<p:inputText value="#{formData.middleInitials}" id="middleInitials"/>
</td>
</tr>
<tr>
<td>
Badge:
</td>
<td>
<p:inputText value="#{formData.badgeNo}" id="badgeNo"/>
</td>
<td>
Network ID:
</td>
<td>
<p:inputText value="#{formData.networkID}" id="networkID"/>
</td>
<td>
Telephone:
</td>
<td>
<p:inputText value="#{formData.telephoneNo}" id="telephoneNo"/>
</td>
</tr>
<tr>
<td>
Org Code:
</td>
<td>
<p:inputText value="#{formData.orgCode}" id="orgCode"/>
</td>
<td>
Org Name:
</td>
<td>
<p:inputText value="#{formData.orgName}" id="orgname"/>
</td>
</tr>
</table>
<br></br>
<table>
<tr>
<td>
<b>Justification:</b>
</td>
</tr>
<tr>
<td>
<p:inputTextarea value="#{formData.justification}" id="justification" cols="80" rows="10" />
</td>
</tr>
<tr>
<td>
<h:commandButton value="Submit Data!" action="#{formData.storeTheData()}"/>
</td>
</tr>
</table>
</h:form>
</body>
</html>
и поддерживающий боб:
package core.smd.classes;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.util.Date;
import java.sql.*;
/**
*
* @author
*/
@ManagedBean
@SessionScoped
public class FormData {
//global variables
String eventTitle;
Date startDate;
Date endDate;
String requestType;
int terminalsRequired;
String lastName;
String firstName;
String middleInitials;
int badgeNo;
String networkID;
String telephoneNo;
String orgCode;
String orgName;
String trainingOption;
String projectOption;
String justification;
/*End of variables declaration*/
/** Creates a new instance of FormData */
public FormData() {
}
public int getBadgeNo() {
return badgeNo;
}
public String getJustification() {
return justification;
}
public void setJustification(String justification) {
this.justification = justification;
}
public void setBadgeNo(int badgeNo) {
this.badgeNo = badgeNo;
}
public String getProjectOption() {
return projectOption;
}
public void setProjectOption(String projectOption) {
this.projectOption = projectOption;
}
public String getTrainingOption() {
return trainingOption;
}
public void setTrainingOption(String trainingOption) {
this.trainingOption = trainingOption;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getEventTitle() {
return eventTitle;
}
public void setEventTitle(String eventTitle) {
this.eventTitle = eventTitle;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getMiddleInitials() {
return middleInitials;
}
public void setMiddleInitials(String middleInitials) {
this.middleInitials = middleInitials;
}
public String getNetworkID() {
return networkID;
}
public void setNetworkID(String networkID) {
this.networkID = networkID;
}
public String getOrgCode() {
return orgCode;
}
public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getRequestType() {
return requestType;
}
public void setRequestType(String requestType) {
this.requestType = requestType;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public String getTelephoneNo() {
return telephoneNo;
}
public void setTelephoneNo(String telephoneNo) {
this.telephoneNo = telephoneNo;
}
public int getTerminalsRequired() {
return terminalsRequired;
}
public void setTerminalsRequired(int terminalsRequired) {
this.terminalsRequired = terminalsRequired;
}
public void storeTheData(){
//prepared statenebts
PreparedStatement preStmt = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"xxxx;user=sa;password=xxxxx;";
Connection con = DriverManager.getConnection(connectionUrl);
String sqlQuery = "INSERT INTO Pending_Requests(Request_No, Request_Details, Network_ID, Request_Status) VALUES(?, ?, ?, ?)";
preStmt = con.prepareStatement(sqlQuery);
preStmt.setString(1, telephoneNo);
preStmt.setString(2, eventTitle);
preStmt.setString(3, networkID);
preStmt.setString(4, eventTitle);
preStmt.executeUpdate();
con.commit();
} catch (SQLException e) {
System.out.println("SQL Exception: "+ e.toString());
} catch (ClassNotFoundException cE) {
System.out.println("Class Not Found Exception: "+ cE.toString());
}
}
}
Я знаю, что представленные данные на самом деле не сохраняются полностью, но я просто проверяю, если SQL qorks и prepareStatement ... следовательно, хранит только часть представленных данных.
Спасибо,