2024年6月4日第六十二篇
今天遇到了网络请求的问题因为我要发送一个多参数的post请求,发现不能使用@requestmapping,
于是我改为使用@PostMapping但是其中不包含参数@Requestparam只包含@RequestBody
导致问题迟迟无法解决,
最后我改为使用get请求,用@GetMapping用@RequestParam实现参数传递。
<template>
<div>
<h1>文章</h1>
<ul id="articles">
<li v-for="article in articles" :key="article.id">
{{ article.title }} - {{ article.content }}
<button @click="deleteArticle(article.id)">删除</button>
<button @click="editArticle(article)">编辑</button>
</li>
</ul>
<form @submit.prevent="createArticle">
<input type="text" v-model="newArticle.title" placeholder="标题">
<textarea v-model="newArticle.content" placeholder="内容"></textarea>
<button type="submit">创建</button>
</form>
<form v-if="editArticleId" @submit.prevent="updateArticle">
<input type="text" v-model="editArticle.title" placeholder="标题">
<textarea v-model="editArticle.content" placeholder="内容"></textarea>
<button type="submit">更新</button>
</form>
</div>
</template>
<script>
export default {
data() {
return {
articles: [],
newArticle: {
title: '',
content: ''
},
editArticleId: null,
editArticle: null
}
},
mounted() {
this.getArticles();
},
methods: {
getArticles() {
axios.get('/api/articles')
.then(response => {
this.articles = response.data;
})
.catch(error => {
console.error(error);
});
},
createArticle() {
axios.post('/api/articles', this.newArticle)
.then(response => {
this.articles.push(response.data);
this.newArticle = { title: '', content: '' };
})
.catch(error => {
console.error(error);
});
},
deleteArticle(id) {
axios.delete(`/api/articles/${id}`)
.then(response => {
this.articles = this.articles.filter(article => article.id !== id);
})
.catch(error => {
console.error(error);
});
},
editArticle(article) {
this.editArticleId = article.id;
this.editArticle = article;
},
updateArticle() {
axios.put(`/api/articles/${this.editArticleId}`, this.editArticle)
.then(response => {
this.articles = this.articles.map(article => {
if (article.id === this.editArticleId) {
return response.data;
} else {
return article;
}
});
this.editArticleId = null;
this.editArticle = null;
})
.catch(error => {
console.error(error);
});
}
}
};
</script>
@RestController @RequestMapping("/api/articles") public class ArticleController { @Autowired private ArticleRepository articleRepository; @GetMapping public List<Article> getAllArticles() { return articleRepository.findAll(); } @GetMapping("/{id}") public Article getArticleById(@PathVariable Long id) { return articleRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("Article not found: " + id)); } @PostMapping public Article createArticle(@RequestBody Article article) { return articleRepository.save(article); } @PutMapping("/{id}") public Article updateArticle(@PathVariable Long id, @RequestBody Article article) { article.setId(id); return articleRepository.save(article); } @DeleteMapping("/{id}") public void deleteArticle(@PathVariable Long id) {
浙公网安备 33010602011771号