Struktur projek adalah sama seperti sebelumnya:
Kami menambah sumber statik baharu:
Oleh kerana sumber statik ditambah, SpringMVC akan memintas mereka Semua sumber statik perlu dikeluarkan dalam kelas konfigurasi SpringConfig:
Kami mencipta SpringMvcSupport baharu
@Configuration public class SpringMvcSupport extends WebMvcConfigurationSupport { @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/pages/**").addResourceLocations("/pages/"); registry.addResourceHandler("/css/**").addResourceLocations("/css/"); registry.addResourceHandler("/js/**").addResourceLocations("/js/"); registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/"); } }
Selepas konfigurasi selesai, kita memerlukan Scan SpringMvcSupport dalam SpringMvcConfig:
@Configuration @ComponentScan({"com.nefu.controller","com.nefu.config"}) @EnableWebMvc public class SpringMvcConfig { }
Seterusnya kita perlu melaksanakan semua pertanyaan senarai, penambahan, pengubahsuaian, pemadaman dan fungsi lain satu demi satu.
Keperluan: Selepas halaman dimuatkan, hantar permintaan tak segerak ke latar belakang untuk mendapatkan data senarai untuk paparan.
Cari fungsi cangkuk halaman, dan kaedah created()
created()
this.getAll()
Gunakan aksios untuk menghantar permintaan tak segerak untuk mendapatkan data daripada latar belakang dalam kaedah getAll()
Laluan akses ialah http://localhost/books
Pulangan data
Kandungan data res.data yang dikembalikan adalah seperti berikut:
Kaedah penghantaran:{
"data": [
{
"id": 1,
"jenis": "Teori komputer",
"nama": "Praktikal musim bunga edisi kelima",
"penerangan" : "Tutorial klasik pengenalan musim bunga, pemahaman mendalam tentang prinsip Spring Technology Insider"
},
"id": 2,
"type": "Teori Komputer",
"name": "5 prinsip teras Spring dan 30 kelas tulisan tangan Amalan",
"penerangan": "Sepuluh tahun pengumpulan, pemikiran intipati Spring tulisan tangan"
},...
],
"kod": 20041,
"msg" : ""
}
getAll() { //发送ajax请求 axios.get("/books").then((res)=>{ this.dataList = res.data.data; }); }Tambah fungsi Keperluan: Lengkapkan modul fungsi baharu imej
kaedah@click="handleCreate()"
dalam kaedah, buka panel baharu handleCreate
@click="handleAdd()"
dalam kaedahhandleAdd
Buka panel baharuhandleCreate
handleCreate() { this.dialogFormVisible = true; },
Kaedah menghantar permintaan tak segerak dan membawa datahandleAdd
handleAdd () { //发送ajax请求 //this.formData是表单中的数据,最后是一个json数据 axios.post("/books",this.formData).then((res)=>{ this.dialogFormVisible = false; this.getAll(); }); }Tambah pemprosesan status fungsi Fungsi baharu asas telah selesai, tetapi masih terdapat beberapa masalah yang perlu diselesaikan: Keperluan: Jika penambahan baharu berjaya, tutup panel dan tanya data sekali lagi Jadi apakah yang perlu dilakukan jika penambahan baharu gagal?1 Dalam kaedah tambah pengendali, lakukan pemprosesan yang berbeza mengikut data yang dikembalikan oleh latar belakang 2 Jika latar belakang mengembalikan kejayaan, gesa mesej kejayaan dan tutup panel 3 Jika latar belakang mengembalikan kejayaan Jika kegagalan dikembalikan, mesej ralat (1) Ubah suai halaman hujung hadapan
handleAdd () { //发送ajax请求 axios.post("/books",this.formData).then((res)=>{ //如果操作成功,关闭弹层,显示数据 if(res.data.code == 20011){ this.dialogFormVisible = false; this.$message.success("添加成功"); }else if(res.data.code == 20010){ this.$message.error("添加失败"); }else{ this.$message.error(res.data.msg); } }).finally(()=>{ this.getAll(); }); }(2) Kembalikan hasil operasi di latar belakang, dan tukar nilai pulangan kaedah penambahan, pemadaman dan pengubahsuaian lapisan Dao daripada
kepada void
int
public interface BookDao { // @Insert("insert into tbl_book values(null,#{type},#{name},#{description})") @Insert("insert into tbl_book (type,name,description) values(#{type},#{name},#{description})") public int save(Book book); @Update("update tbl_book set type = #{type}, name = #{name}, description = #{description} where id = #{id}") public int update(Book book); @Delete("delete from tbl_book where id = #{id}") public int delete(Integer id); @Select("select * from tbl_book where id = #{id}") public Book getById(Integer id); @Select("select * from tbl_book") public List<Book> getAll(); }(3) Dalam BookServiceImpl, kaedah penambahan, pemadaman dan pengubahsuaian ditentukan mengikut nilai pulangan DAO dan kembalikan benar/salah
@Service public class BookServiceImpl implements BookService { @Autowired private BookDao bookDao; public boolean save(Book book) { return bookDao.save(book) > 0; } public boolean update(Book book) { return bookDao.update(book) > 0; } public boolean delete(Integer id) { return bookDao.delete(id) > 0; } public Book getById(Integer id) { if(id == 1){ throw new BusinessException(Code.BUSINESS_ERR,"请不要使用你的技术挑战我的耐性!"); } // //将可能出现的异常进行包装,转换成自定义异常 // try{ // int i = 1/0; // }catch (Exception e){ // throw new SystemException(Code.SYSTEM_TIMEOUT_ERR,"服务器访问超时,请重试!",e); // } return bookDao.getById(id); } public List<Book> getAll() { return bookDao.getAll(); } }(4) Uji situasi ralat dan ubah panjang kategori buku Hanya tetapkan di luar julat Selepas memproses penambahan baharu, anda akan mendapati masih terdapat masalah dengan penambahan baharu >Selepas penambahan baharu berjaya, klik Tambah semula Butang akan mendapati bahawa data sebelumnya masih wujud Pada masa ini, anda perlu mengosongkan kandungan borang apabila menambahnya.
rreeee
Atas ialah kandungan terperinci Cara menggunakan Java SSM untuk melaksanakan penyahpepijatan bersama protokol bahagian hadapan dan belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!