2012-05-02 8 views
0

私は2つのテーブルcountry_listとrating_listを持っています。新しい国をシステムに追加するには、別個のjspがあります。問題は、国のすべての評価を編集できる[レーティングの編集]ページにあります。ページの編集レーティングを開くと、すべての国名が対応するテキストフィールドのラベルとして1つずつ表示され、ユーザーが与えたいレーティングが与えられます。ユーザーが編集レーティングページでサブミットをクリックすると、レーティング値をフォーム値にマッピングする方法を教えてください。国名リストはデータベースから取り込むことができますが、評価はどうですか?私が国の数について確信しているなら、私はそのフォームクラスに多くの評価フィールドを与えることができます。しかし、どのくらいの数のテキストフィールドが表示されるのか分かりません。私はStruts 1.2を使用しています。フォームに空の値を持つ100個の文字列を作成する必要がありますが、それは良い方法ではありません。これは唯一の方法、他の選択肢ですか?入力フィールドの数がわからないときにstrutsフォームクラスを作成する方法

たとえば、ログインページの場合、「String username; String password」のような2つのフィールドを作成し、それに対応するセッターとゲッターを作成できます。

しかし、私の問題では、どのくらいの国とそれに対応する評価が不明です。 私は、リストとして国名をリストに付け、フォームを提出する際にリストとして指定すると、国名と格付けが自動的に対応するリストにマップされます。

答えて

1

次のテクニックが役立つかもしれません。フォームクラスでこれらに類似セッターゲッターとを追加します。

public void setRating(String a_CountryId, String a_sRating) 
{ 
    // Store the rating for the given country id, e.g. in a map 
} 

public String getRating(String a_sCountryId) 
{ 
    // Return the rating for the given country id, e.g. from a pre-populated map 
} 

あなたはその後、JSPページでは、次の構文を使用して、これらにアクセスすることができます。

property="rating(${country.id})" 

例えば、国を反復JSPページを開き、html:inputタグを使用して上記ゲッターに結び付けます。

<logic:iterate name="countryList" id="country"> 
    <bean:write name="country" property="name"/> 
    Rating: 
    <html:text name="form" property="rating(${country.id})"/> 
</logic:iterate> 
0

ロジックタグ、特にロジック:イテレートを使用します。ここではそれがどのように動作するかへのリンクです:

struts logic:iterate

+0

入力の数がわからないときは、どのようにしてstrutsフォームクラスを実装できますか? – user617597

0

んが、あなたが文字列の100年代を作成するために持っていけないん。

<logic:iterate name="countryList" id="countryListId"> 
    <label><bean:write name="countryListId" property="countryName"/></label> 
</logic:iterate> 

コメントを1として:

考える国は、次のようになります。

は、あなたがこのようなものを持っています

List<Country> countryList;// This list is getting populated say from database 

あなたのJSPコードのようなオブジェクトのリストを持っていると言う

public class Country { 

    private String countryName; 

    private List<Rating> ratingList; 

} 

最低限のHTMLは次のようになります。

<table> 
    <logic:iterate name="countryList" id="countryListId"> 
     <tr> 
      <td> 
       <label><bean:write name="countryListId" property="countryName"/></label> 
      </td> 
      <logic:iterate id="ratingListId" name="rating" property="ratingList"> 
       <td> 
        <input type="text"><bean:write name="ratingListId" property="ratingName"/></input> 
       </td> 
      </logic:iterate> 
     </tr> 
    </logic:iterate> 
</table 
+0

レーティング・リストはどうですか?どのように私はフォームでそれを与えることができますか? – user617597

+0

レーティングとカントリーオブジェクトはどのように見えますか?国は評価のリストを持っていますか? – mprabhat

+0

まだコードを完成させていません。 – user617597

関連する問題