поэтому я сделал простой сайт, на котором я могу добавлять продукты в список (текстовую область) с помощью Spring Framework 4.0.1, я могу видеть содержимое страницы, но в текстовой области внизу есть это исключение, не позволяющее мне получать продукты в списке.
Модельный класс
package model;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author mkSS
*/
public class Products {
public int product_id;
public String productname;
public String productstock;
public String productdescription;
public int getProduct_id() {
return product_id;
}
public void setProduct_id(int product_id) {
this.product_id = product_id;
}
public String getProductname() {
return productname;
}
public void setProductname(String productname) {
this.productname = productname;
}
public String getProductstock() {
return productstock;
}
public void setProductstock(String productstock) {
this.productstock = productstock;
}
public String getProductdescription() {
return productdescription;
}
public void setProductdescription(String productdescription) {
this.productdescription = productdescription;
}
public static String productList() throws ClassNotFoundException, SQLException {
StringBuilder product_list = new StringBuilder();
Class.forName("com.mysql.jdbc.Driver");
try (java.sql.Connection conn= DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "miksa988");){
Statement st= conn.createStatement();
st.executeQuery("select productname, productstock,productdescription from products");
ResultSet rs= st.getResultSet();
while (rs.next()){
product_list.append(rs.getString("productname"));
product_list.append(rs.getString(", "));
product_list.append(rs.getString("productstock"));
product_list.append(rs.getString(", "));
product_list.append(rs.getString("productdescription"));
product_list.append(rs.getString("\n"));
}
} catch(SQLException ex){
product_list.append(ex.getMessage());
}
return product_list.toString();
}
public void addProduct() throws ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
try (java.sql.Connection conn= DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "miksa988");){
if (productname !=null && !(productname.isEmpty()) && productstock !=null && !(productstock.isEmpty()) && productdescription !=null && !(productdescription.isEmpty())){
Statement st = conn.createStatement();
st.execute("insert into products (productname,productstock, productdescription) values ('"+ productname + "','"+productstock+"','"+productdescription+"')");
}
}catch(SQLException ex){
System.out.println("Error while trying to connect with databse"+ex);
}
}
}
А теперь это мой контроллер класса
контроллер пакетов;
import java.sql.SQLException;
import model.Products;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ProductController {
@RequestMapping(value = "/product", method= RequestMethod.GET)
public String createForm(ModelMap model) throws ClassNotFoundException, SQLException{
model.addAttribute("product", new Products());
model.addAttribute("products", Products.productList() );
return "product";
}
@RequestMapping(value = "/product", method= RequestMethod.POST)
public String addProduct(@ModelAttribute("product") Products product , ModelMap model) throws ClassNotFoundException ,SQLException {
product.addProduct();
createForm(model);
return "product";
}
}
и это моя страница JSP
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>E-commerce</title>
</head>
<body>
<h1>Our Products</h1>
<form:form action="product.htm" method="post" commandName="product">
<form:label path="productname">Enter product name:</form:label></br>
<form:input id="pname" type="text" path="productname" placeholder="product name"></form:input><br>
<form:label path="productstock">Enter amount of items in stock:</form:label></br>
<form:input id="pstock" type="text" path="productstock" placeholder="product stock"></form:input><br>
<form:label path="productdescription">Enter product description:</form:label></br>
<form:input id="pdescription" type="text" path="productdescription" placeholder="product description"></form:input><br>
<input type="submit" value="Dodaj proizvod"/>
</form:form>
<label for="product_list" id="products_list_label">List of products: </label> </br>
<textarea id="products_list" rows="20" cols="100" readonly>${products}</textarea>
</body>
</html>
это мой SQL-запрос
`product_id` INT NOT NULL AUTO_INCREMENT,
`productname` VARCHAR(45) NOT NULL,
`productstock` INT NOT NULL,
`productdescription` VARCHAR(45) NOT NULL,
PRIMARY KEY (`product_id`));
Произошла ошибка, когда я загружаю страницу, я вижу содержимое (эти метки и текстовую область), но в текстовой области я вижу это исключение приведения класса java lang, поэтому, когда я пытаюсь получить продукты в списке, я могу ' т. Что бы это могло быть?