質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

2回答

13065閲覧

JSPのformタグのラジオボタンを使おうとしたら…

isacRu

総合スコア64

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2016/08/31 05:41

編集2016/08/31 05:44

JSPのformタグのラジオボタン機能(form:radiobutton)を使おうとしたら、無効なプロパティ、または無効なゲッターメソッドが存在します…みたいなエラーがでてしまいます。(アクセサメソッドがあるにもかかわらず…)

JSPソース

JSP

1<!-- 略 --> 2<c:set var="contextPath" value="${pageContext.request.contextPath}" /> 3<div align="center" class="container"> 4 <form:form method="POST" modelAttribute="minutesKindCreate" action="${contextPath}/top"> 5 <c:forEach var="auth" items="${authorityList}"> 6 <form:radiobutton path="${auth.authority}" value="1"/> 7 <form:radiobutton path="${auth.authority}" value="2"/> 8 <form:radiobutton path="${auth.authority}" value="3"/> 9 </c:forEach> 10 </form:form> 11</div> 12<!-- 略 -->

Controllerソース

Java

1/* 略 */ 2 @Autowired 3 private UserService userService; 4 5 @Autowired 6 private AuthorityService authorityService; 7 8 @RequestMapping(value = "/userCreate", method = RequestMethod.GET) 9 public String getminutesKindCreate(Model model) { 10 11 List<User> userList = userService.findAllRow(); 12 List<Authority> authorityList = authorityService.findAllRow(); 13 14 model.addAttribute("minutesKindCreate", new MinutesKind()); 15 16 model.addAttribute("userList", userList); 17 18 model.addAttribute("authorityList", authorityList); 19 20 return "userCreate"; 21 } 22/* 略 */

entityクラス

package com.user.model; import java.io.Serializable; import javax.persistence.*; @Entity @Table(name = "t_authority") @SuppressWarnings("serial") public class Authority implements Serializable{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "AuthorityId", length = 11) private Integer id; @Column(name = "UserId", length = 11) private Integer userId; @Column(name = "MinutesKindId", length = 11) private Integer minutesKindId; @Column(name = "Authority", length = 8) private Integer authority; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public Integer getMinutesKindId() { return minutesKindId; } public void setMinutesKindId(Integer minutesKindId) { this.minutesKindId = minutesKindId; } public Integer getAuthority() { return authority; } public void setAuthority(Integer authority) { this.authority = authority; } }

実行したら以下のようなエラーが出てしまいました。

error

1Bean property '1' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

(訳)

「1」というBeanプロパティは可読ができない、または無効なゲッターメソッドが存在します。ゲッターの戻り値の型は、セッターのパラメータの型と一致していますか?

以上のエラーがでてしまいますが、まったく心当たりがありません。アクセサメソッドはちゃんと準備したのにもかかわらず、なぜか意味不明なエラーがでてしまいます。原因がわかる方教えてください。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/31 06:49

auth.authority の展開結果が1なだけじゃろ
guest

回答2

0

自己解決

話は単純で、pathの要素はプロパティの名前ではなく、プロパティの値が入ってしまったためです。結局プロパティが見つからず、無効エラーが出てしまった。

※path要素はプロパティ名でなくてはならない

投稿2016/09/01 00:16

編集2016/09/01 00:16
isacRu

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

<form:radiobutton path="${auth.authority}" value="1"/>の3つラジオボタンの周りを、<c:forEach var="auth" items="${authorityList}">で囲んでいるため、例えばauthorityListの要素数が2つの場合、ラジオボタンが3*2回の6つ出ることになります。

ラジオボタンの要素は1つだけ記述すれば良いのではないでしょうか。

投稿2016/08/31 15:37

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

isacRu

2016/08/31 23:59 編集

ラジオボタン3つがあるのには意味があります。権限設定のラジオボタンで、valueの値が1のときがなしで、2が回覧のみで、3が承認として配置しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問