💭
【初心者向け/ITスクール 74日】個人プロジェクトスタート9日目
はじめに
今日は、9日目の日です! ログイン機能と会員情報修正、validationなどを作成しました。
今日中に管理者ページも作成し、商品登録と管理、会員リストなどを見る昨日を作成したいと
思います。
今日はredirectと@PathVariable, Sessionで苦戦しました、、一生忘れられないと思います。
redirect
redirect時のリンクはtemplateではなく、Springのcontroller mappingに繋がることが分かりました。これで2時間を無題にしましたが、PRGパターンは一生わすれずできると思います。
Session, @PathVariable
問題点:update時に、動的urlが作られない。会員情報照会時にSessionを入れれば、Formオブジェクトからどの風にValidationをするかが分からない。
解決方法
1.SessionIdとSessionオブジェクトをしっかり分かれて覚えること
LoginController
@GetMapping("/")
public String homeLogin(@SessionAttribute(name="loginMember", required = false) Member loginMember, Model model){
if(loginMember == null){
return "home";
}
model.addAttribute("member",loginMember);
return "loginhome";
}
2. Get requestをするリンクにsessionのkeyから値を出す。
<a class="header__menu__user" th:href="@{|/members/${member.memberId}/update|}" href="/update"><i class="fa-solid fa-user"></i
></a>
3. Get requestをするリンクにsessionのkeyから値を出す。
MemberController
@GetMapping(value = "/{memberId}/update")
public String goUpdatePage(@PathVariable("memberId") String memberId, @ModelAttribute("memberUpdateForm")MemberUpdateForm memberUpdateForm) {
memberRepository.findById(memberId);
return "members/updateForm";
}
<a>
で簡単にpost要請をする方法
<a class="header__menu__user" href="javascript:void(0)" onClick="javascript:logout()">
<i class="fa-solid fa-right-from-bracket"></i></a>
'use strict'
function logout() {
let f = document.createElement('form');
f.setAttribute('method', 'post');
f.setAttribute('action', '/logout');
document.body.appendChild(f);
f.submit();
}
Discussion