実現したいこと
Spring Boot + thymeleaf でDBから取得した値を一覧表に表示したいです。
DBからJava側ではデータが取得できているのにHTMLには表示されません。
何度も変数名等が間違っていないか確認しましたが、自分では見つけられず途方に暮れています。
お気付きのところ、間違っているところをご教授頂きたいです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
Exception evaluating SpringEL expression: "permitDataList" 「permitDataList」はDTOで定義しているので正しいと思っています。
該当のソースコード
HTML(一部抜粋)
1<form th:action="@{/tablePermit}" th:object="${permitListParam}" th:method="post"> 2<table> 3 <tr> 4 <td> 5 <input type="image" th:formaction="@{/search}" id ="submit" name="submit" src="images/btn_kensaku.gif" alt="検索" class="imgBtn"/> 6 </td> 7 </tr> 8</table> 9<table cellpadding="0" cellspacing="0" style="width:440px"> 10 <col style="width:30px"/> 11 <col style="width:130px"/> 12 <col style="width:280px"/> 13 <tr th:each="permitList, st : *{permitDataList}"> 14 <td class="left"><input type="checkbox" th:field="${permitList.possible}" ></input></td> 15 <td class="left"> 16 <span th:text="${permitList.tableid}" ></span> 17 <input type="hidden" th:field="*{permitDataList[__${st.index}__].tableid}"></input> 18 </td> 19 <td class="left"><span th:text="${permitList.table_name}" ></span></td> 20 </td> 21 </tr> 22</table> 23</form>
Java(@Controller)
1@Controller 2 3public class TablePermitController implements WebMvcConfigurer { 4 @Autowired 5 PermitService permitService; 6 7 @GetMapping(value = "/search") 8 @RequestMapping(value = "/search", method = RequestMethod.POST) 9 public String search(@ModelAttribute("permitListParam") PermitListParam permitList, Model model) { 10 PermitListParam permitListParam = permitService.findPermit(); 11 model.addAttribute("permitListParam", permitListParam); 12 return "tablePermit"; 13 } 14}
Java(@Entity)
1@Entity 2@Data 3public class TablePermit implements Serializable{ 4 public boolean possible; 5 @Id 6 public String tableid; 7 public String table_name; 8}
Java(DTO)
1@Data 2public class PermitDataDto implements Serializable{ 3 public boolean possible; 4 @Id 5 public String tableid; 6 public String table_name; 7}
Java(DTO)
1@Data 2public class PermitListParam implements Serializable { 3 @Valid 4 public List<PermitDataDto> permitDataList; 5}
Java(@Service)
1@Service 2public class PermitService { 3 4 @Autowired 5 PermitRepository permitRepository; 6 7 public PermitListParam findPermit() { 8 List<TablePermit> permitList = permitRepository.findPermit("G000", "A", "M"); 9 PermitListParam permitListParam = new PermitListParam(); 10 List<PermitDataDto> list = new ArrayList<PermitDataDto>(); 11 // エンティティを画面データに詰め替える 12 for(TablePermit permit : permitList) { 13 PermitDataDto data = new PermitDataDto(); 14 data.setPossible(permit.isPossible()); 15 data.setTableid(permit.getTableid()); 16 data.setTable_name(permit.getTable_name()); 17 list.add(data); 18 } 19 permitListParam.setPermitDataList(list); 20 return permitListParam; 21 } 22}
Java(@Repository)
1@Repository 2public interface PermitRepository extends JpaRepository<TablePermit, String> { 3 4 @Query(value = "SELECT possible, p.tableid AS tableid, table_name FROM usys_permit p JOIN usys_table t ON p.tableid = t.tableid " + 5 "WHERE p.groupid = :groupid AND p.permit = :permit AND t.table_kbn = :table_kbn ORDER BY t.no", nativeQuery = true) 6 List<TablePermit> findPermit(@Param("groupid") String groupid, @Param("permit") String permit, @Param("table_kbn") String table_kbn); 7}
イタリックテキスト
回答1件
あなたの回答
tips
プレビュー