Có thể đã muộn, nhưng ở đây tôi để lại thứ gì đó phục vụ tôi và có thể ai đó có thể giúp đỡ.
Tôi cũng đang sử dụng Spring MVC và Hibernate
Trong mô hình (lớp thực thể) tạo một biến kiểu String để làm việc chuyển đổi kiểu byte để String với Base64.
Tôi đã làm điều này cho một bảng các quốc gia mà tôi có với lá cờ tương ứng của nó, và những gì tôi muốn là liệt kê trong một bảng trong quan điểm tất cả các quốc gia và bên cạnh lá cờ của nó.
Model (Entity)
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "country")
public class Country implements java.io.Serializable {
private int id;
private String name;
private byte[] flag;
private String base64; //Variable to store the conversion of a data byte type to String
@Transient //Annotation so it does not persist in the database
public String getBase64() {
//Convert the data type byte to String, store it in the variable and return it
return this.base64 = Base64.encode(this.flag);
}
public void setBase64(String base64) {
this.base64 = base64;
}
public Country() {
}
public Country(int id, String name, byte[] flag, String base64) {
this.id = id;
this.name = name;
this.flag = this.flag
this.base64 = this.base64;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
@Column(name = "name")
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "flag")
public byte[] getFlag() {
return this.flag;
}
public void setFlag(byte[] flag) {
this.flag = flag;
}
}
Repository - Dụng cụ là một giao diện - AbstractDao là một lớp trừu tượng nhập khẩu org.springframework.stereotype.Repository; nhập application.model.Country; nhập application.repository.dao.AbstractDao; nhập application.repository.dao.CountryDao; nhập org.hibernate.Criteria;
@Repository("countryDao")
public class CountryDaoImpl extends AbstractDao<Integer, Country> implements CountryDao {
@Override
@SuppressWarnings("unchecked")
public List<Country> listCountries() {
Criteria criteria = createEntityCriteria(); //Country.class
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<Country> listCountries = criteria.list();
return listCountries;
}
}
Dịch vụ - dụng cụ là một giao diện
import application.model.Country;
import application.repository.dao.CountryDao;
import application.service.dao.CountryService;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service("countryService")
public class CountryServiceImpl implements CountryService {
@Autowired
private CountryDao countryDao;
@Override
@Transactional(readOnly = true)
public List<Country> listCountries() {
return countryDao.listCountries();
}
}
khiển
import application.model.Country;
import application.service.dao.CountryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value = "/countries")
public class CountryController {
@Autowired
private CountryService countryService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String ListCountries(Model model) {
model.addAttribute("listcont", countryService.listCountry());
return "countries/countries"; //view
}
}
View - quốc gia/countries.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h3>List Countries</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Flag</th>
</tr>
</thead>
<tbody>
<c:forEach items="${listcont}" var="country">
<tr>
<td>${country.name}</td>
<td><img src="data:image/png;base64,${country.base64}" /></
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
Tôi đã thử giải pháp này nhưng tôi gặp phải lỗi 404. Có phải vì cấu hình chế độ xem của tôi, sử dụng Gạch không? Tôi đã đặt cấu hình trong bản cập nhật – bontade
Vì vậy, cuối cùng, lỗi 404 được gây ra bởi bản đồ servlet, phục vụ các yêu cầu cho regex * .htm. Giải pháp của bạn hoạt động! Cảm ơn! Dzięki: D – bontade
Ví dụ hoạt động đầy đủ "Spring MVC + Hibernate + Maven": https://sites.google.com/site/adrienitnotes/java/web-apps---spring-mvc-hibernate/spring-form-image -upload-display-from-database-hibernate-simple-mapping –