Spring Framework-5
27624 ワード
📕 載せた文章を読んでみましょう.
ビューの変更
ビューの変更
board.jspの変更
記事タイトルをクリックして、参照できるように変更します.<td><a href="/post/${post.id}">${post.title}</a></td>
post.jspの変更
以前に文章を書くときに使用したビューを変更して、文章を読むようにします.モデルpostが存在する場合はpostの内容が表示され、存在しない場合は以前のように新しい文章を入力するように変更されます.formの変更は次のようになります.<c:choose>
<c:when test="${post!=null}">
<form action="/post" method="post" class="user">
<div class="form-group">
<input type="text" class="form-control form-control-user" name="title" placeholder="Title" readonly value="${post.title}">
</div>
<div class="form-group">
<textarea class="form-control form-control-user" name="content" readonly>${post.content}</textarea>
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" name="name" placeholder="name" readonly value="${post.name}">
</div>
</form>
</c:when>
<c:otherwise>
<form action="/post" method="post" class="user">
<div class="form-group">
<input type="text" class="form-control form-control-user" name="title" placeholder="Title">
</div>
<div class="form-group">
<textarea class="form-control form-control-user" name="content"></textarea>
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" name="name" placeholder="name">
</div>
<button type="submit" class="btn btn-primary btn-user btn-block">
Register Post
</button>
</form>
</c:otherwise>
</c:choose>
タグはjstl構文で、switch case文と似ています.
タグはjstl構文であり、switch caseではcaseと似ている.
タグはjstl構文であり、switch case文ではdefaultと似ています.
PostMapperインタフェースとxmlの変更
postを変更してidでpostを受信します.public interface PostMapper {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
<mapper namespace="ac.kr.smu.mapper.PostMapper">
<insert id="save">
INSERT INTO post(title,content,created_date,name)
VALUES(#{title},#{content},#{created_date},#{name})
</insert>
<select id="findAll" resultType="PostVO">
SELECT * FROM post
</select>
<select id="findById" resultType="PostVO">
SELECT * FROM post WHERE id=#{id}
</select>
</mapper>
PostServiceの変更
同様に、IDを変更してPostVOを返します.public interface PostService {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
@Service
public class PostServiceImpl implements PostService {
@Autowired
private PostMapper postMapper;
public void save(PostVO postVO){
postMapper.save(postVO);
}
@Override
public List<PostVO> findAll() {
return postMapper.findAll();
}
@Override
public PostVO findById(int id) {
return postMapper.findById(id);
}
}
PostControlの変更
@PathVariableを使用してpostのIDを受信し、モデルにPostVOを追加します.@リクエストにPathVariableがない場合は、「記事の合成」画面に戻ります.@Controller
@RequestMapping("/post")
public class PostController {
@Autowired
private PostService postService;
@GetMapping({"/{postId}",""})
public String getPost(@PathVariable(value = "postId",required = false) Integer postId, Model model){
if(postId != null)
model.addAttribute("post",postService.findById(postId));
return "post";
}
@PostMapping
public String postPost(PostVO postVO){
postService.save(postVO);
return "board";
}
}
@PathVariableは、urlから/post/1に要求された場合など、変数のセットです.パスは/{postId}として指定されているため、リクエストが/post/1の場合、1はpostIdとなります.requiredプロパティをfalseとして指定する場合は、そのプロパティを受け入れる必要はありません.
テスト
Reference
この問題について(Spring Framework-5), 我々は、より多くの情報をここで見つけました
https://velog.io/@dbghwns11/Spring-Framework-5
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<td><a href="/post/${post.id}">${post.title}</a></td>
<c:choose>
<c:when test="${post!=null}">
<form action="/post" method="post" class="user">
<div class="form-group">
<input type="text" class="form-control form-control-user" name="title" placeholder="Title" readonly value="${post.title}">
</div>
<div class="form-group">
<textarea class="form-control form-control-user" name="content" readonly>${post.content}</textarea>
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" name="name" placeholder="name" readonly value="${post.name}">
</div>
</form>
</c:when>
<c:otherwise>
<form action="/post" method="post" class="user">
<div class="form-group">
<input type="text" class="form-control form-control-user" name="title" placeholder="Title">
</div>
<div class="form-group">
<textarea class="form-control form-control-user" name="content"></textarea>
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" name="name" placeholder="name">
</div>
<button type="submit" class="btn btn-primary btn-user btn-block">
Register Post
</button>
</form>
</c:otherwise>
</c:choose>
PostMapperインタフェースとxmlの変更
postを変更してidでpostを受信します.public interface PostMapper {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
<mapper namespace="ac.kr.smu.mapper.PostMapper">
<insert id="save">
INSERT INTO post(title,content,created_date,name)
VALUES(#{title},#{content},#{created_date},#{name})
</insert>
<select id="findAll" resultType="PostVO">
SELECT * FROM post
</select>
<select id="findById" resultType="PostVO">
SELECT * FROM post WHERE id=#{id}
</select>
</mapper>
PostServiceの変更
同様に、IDを変更してPostVOを返します.public interface PostService {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
@Service
public class PostServiceImpl implements PostService {
@Autowired
private PostMapper postMapper;
public void save(PostVO postVO){
postMapper.save(postVO);
}
@Override
public List<PostVO> findAll() {
return postMapper.findAll();
}
@Override
public PostVO findById(int id) {
return postMapper.findById(id);
}
}
PostControlの変更
@PathVariableを使用してpostのIDを受信し、モデルにPostVOを追加します.@リクエストにPathVariableがない場合は、「記事の合成」画面に戻ります.@Controller
@RequestMapping("/post")
public class PostController {
@Autowired
private PostService postService;
@GetMapping({"/{postId}",""})
public String getPost(@PathVariable(value = "postId",required = false) Integer postId, Model model){
if(postId != null)
model.addAttribute("post",postService.findById(postId));
return "post";
}
@PostMapping
public String postPost(PostVO postVO){
postService.save(postVO);
return "board";
}
}
@PathVariableは、urlから/post/1に要求された場合など、変数のセットです.パスは/{postId}として指定されているため、リクエストが/post/1の場合、1はpostIdとなります.requiredプロパティをfalseとして指定する場合は、そのプロパティを受け入れる必要はありません.
テスト
public interface PostMapper {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
<mapper namespace="ac.kr.smu.mapper.PostMapper">
<insert id="save">
INSERT INTO post(title,content,created_date,name)
VALUES(#{title},#{content},#{created_date},#{name})
</insert>
<select id="findAll" resultType="PostVO">
SELECT * FROM post
</select>
<select id="findById" resultType="PostVO">
SELECT * FROM post WHERE id=#{id}
</select>
</mapper>
同様に、IDを変更してPostVOを返します.
public interface PostService {
public void save(PostVO postVO);
public List<PostVO> findAll();
public PostVO findById(int id);
}
@Service
public class PostServiceImpl implements PostService {
@Autowired
private PostMapper postMapper;
public void save(PostVO postVO){
postMapper.save(postVO);
}
@Override
public List<PostVO> findAll() {
return postMapper.findAll();
}
@Override
public PostVO findById(int id) {
return postMapper.findById(id);
}
}
PostControlの変更
@PathVariableを使用してpostのIDを受信し、モデルにPostVOを追加します.@リクエストにPathVariableがない場合は、「記事の合成」画面に戻ります.@Controller
@RequestMapping("/post")
public class PostController {
@Autowired
private PostService postService;
@GetMapping({"/{postId}",""})
public String getPost(@PathVariable(value = "postId",required = false) Integer postId, Model model){
if(postId != null)
model.addAttribute("post",postService.findById(postId));
return "post";
}
@PostMapping
public String postPost(PostVO postVO){
postService.save(postVO);
return "board";
}
}
@PathVariableは、urlから/post/1に要求された場合など、変数のセットです.パスは/{postId}として指定されているため、リクエストが/post/1の場合、1はpostIdとなります.requiredプロパティをfalseとして指定する場合は、そのプロパティを受け入れる必要はありません.
テスト
@Controller
@RequestMapping("/post")
public class PostController {
@Autowired
private PostService postService;
@GetMapping({"/{postId}",""})
public String getPost(@PathVariable(value = "postId",required = false) Integer postId, Model model){
if(postId != null)
model.addAttribute("post",postService.findById(postId));
return "post";
}
@PostMapping
public String postPost(PostVO postVO){
postService.save(postVO);
return "board";
}
}
Reference
この問題について(Spring Framework-5), 我々は、より多くの情報をここで見つけました https://velog.io/@dbghwns11/Spring-Framework-5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol