2016-04-24 8 views
0

私は1対多数のマッピングを持つ次の2つのクラスを持っています。生徒は複数の科目を選択できます。フォームの使い方:spring mvcの選択

@Entity 
@Table (name = "studentinfo") 
public class student { 

    @Id 
    @GeneratedValue (strategy = GenerationType.IDENTITY) 
    @Column (name = "stud_id") 
    private int studId; 

    @NotEmpty 
    @Column (name = "stud_name") 
    private String studname; 

    @NotEmpty 
    @Column (name = "stud_age") 
    private int studage; 

    @OneToMany (cascade = CascadeType.ALL) 
    @JoinColumn (name = "stud_sub_id") 
    private List<subject> subject; 

    //getters and setters 

対象モデルクラスiの形式を使用するにはどうすればよい

@Entity 
@Table (name = "subject") 
public class subject { 

@Id 
@GeneratedValue (strategy = GenerationType.IDENTITY) 
@Column (name = "Sub_id") 
private int subId; 

@NotEmpty 
@Column (name = "Subj_name") 
private String subjname; 

//getters and setters 

:特定の生徒の詳細を編集しながら、私も学生のために、複数の対象を選択して、できるように、サブジェクトのリストを表示するには、selectタグを、私は彼のために選択された科目を表示する必要があります。ここに私の現在のJSPコードがあります。

<form:form commandName="studentdetails" action="${pageContext.request.contextPath}/stud/studentadded" method="post"> 
    <form:hidden path="studId"/> 

    <table> 

     <tr> 
      <td><label for="studname">Name: </label> </td> 
      <td><form:input path="studname" id="name"/></td> 
      <td><form:errors path="studname" cssStyle="color:#ff0000"></form:errors></td> 
     </tr> 

     <tr> 
      <td><label for="studage">Age: </label> </td> 
      <td><form:input path="studage" id="age"/></td> 
      <td><form:errors path="studage" cssStyle="color:#ff0000"></form:errors></td> 
     </tr> 
      <tr> 
      <td><label for="subject.subjname">Opting Subject: </label> </td> 
      <td> 
       <form:select path="subject.subjname"> 
       <form:option value="" label="select"></form:option>  
       <form:options items="${subjects}"/>   
       </form:select> 
      </td> 
      <td><form:errors path="subject.subjname" cssStyle="color:#ff0000"></form:errors></td> 
     </tr> 
     <tr> 
      <td colspan="3"> 

       <input type="Submit" value="Add"/> 

      </td> 
     </tr> 

    </table> 
     </form:form> 

私のフォームバッキングオブジェクトは、学生クラスです。ここでitems = "$ {subjects}"にはコントローラから渡されたList<String>の件名のリストが含まれています。 path = "subject.subjname"の場合、次のエラーが表示されます。

org.springframework.beans.NotReadablePropertyException: Invalid property 'subject.subjname' of bean class [com.model.studentinfo]: Bean property 'subject.subjname' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 

しかし、私は適切なゲッターに&セッターを抱えています。私がパス= "件名"を使用する場合、私は送信中に次のエラーが表示されます。

400 The request sent by the client was syntactically incorrect 

しかし、私は日付プロパティを使用していません。どのように私はフォームを作ることができます:学生の追加と編集の両方のために働くことを選択してください。これで私を助けてください。あなたは、フォームのバッキングオブジェクト「studentdetails」で、パスのString inputSubjectsフィールドの設定は、以下を使用行う必要があり

+0

は、あなたのパスにstudendetails.subject.subjnameを試してみてください。 – LearningPhase

+0

ありがとうございますが、これは機能しません。 – karthi

+0

これで親切に助けてください。 – karthi

答えて

0

<form:form modelAttribute="studentdetails" action="${pageContext.request.contextPath}/stud/studentadded" method="post"> 

    <form:select multiple="true" path="inputSubjects"> 
      <form:option value="" label="select"></form:option>  
      <form:options items="${subjects}"/>   
    </form:select> 
関連する問題