やりたい事
Modelに格納したデータを他のjspファイルでも使えるようにしたい。
現在はコントローラクラス内で以下のようにデータを格納し、search.jspに渡し、出力しておりますが、
@PostMapping("/search/result") public String postSearch(@RequestParam("sampleId")String sampleId, Model model) { SampleDto list = userService.selectOne(sampleId); model.addAttribute("list", list); return "search/search"; }
userDetail.jspでも以下のようにして表示させたい。
<td><c:out value="${list.sampleId}" /></td> <td><c:out value="${list.sampleName}" /></td>
id検索をし、DBからデータを引っ張ってきて表示し、名前の部分をクリックするとuserDetail.jspへフォワードし、そこで再度idとnameを表示させたい。ただ、上記のように${list.sampleId}としても、何も表示されません。
UserController.java
ackage group.study.dev.sample.search.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import group.study.dev.dto.sample.SampleDto; import group.study.dev.sample.search.service.UserService; import group.study.dev.web.common.controller.AbstractController; @Controller public class UserController extends AbstractController { @Autowired private UserService userService; @RequestMapping(value = "/search") public String goSearch() { return "search/search"; } @GetMapping("/search/insert") public String goInsert() { return "/search/insert"; } @PostMapping("/search/insert") public void postInsert(SampleDto sampleDto) { userService.insert(sampleDto); } @PostMapping("/search/result") public String postSearch(@RequestParam("sampleId")String sampleId, Model model) { SampleDto list = userService.selectOne(sampleId); model.addAttribute("list", list); return "search/search"; } @GetMapping("/search/userDetail") public String goUserDetail() { return "search/userDetail"; } }
userDetail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>詳細画面</title> </head> <body> <table border="1"> <tr> <th>ID</th> <th>NAME</th> </tr> <tr> <td><c:out value="${list.sampleId}" /></td> <td><c:out value="${list.sampleName}" /></td> </tr> </table> </body> </html>
search.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String method = request.getMethod(); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>hoge</title> </head> <body> <% if ("GET".equals(method)) { %> <h1>HOME</h1> <div> <form method="post" action="/web_sample/search/result"> <input type="text" name="sampleId" /> <button type="submit" value="submit">送信</button> </form> </div> <div> <form method="post" action="/web_sample/search/insert"> <button type="submit" value="insert">新規登録</button> </form> </div> <% } else { %> <h1>検索結果</h1> <table border="1"> <tr> <th>ID</th> <th>NAME</th> </tr> <tr> <td><c:out value="${list.sampleId}" /></td> <td><a href="/web_sample/search/userDetail">${list.sampleName}</a></td> </tr> </table> <% } %> </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。