1

私は春に新しく、spring3.0 で 1 つのアプリケーションを作成します。私は注釈春を使用しています。

コントローラーメソッドからjspにリストに戻りたいです。そのリストが選択ボックスに表示される場所。以下はコントローラーとjsp部分のコードです。これを理解するのを手伝ってください。

public String showUserForm(ModelMap model)  
{       
  User user = new User();
  model.addAttribute(user);
  List<String> lookingfor=service.getOptions();
  //want to send this "lookingfor" to the jsp       
  return "welcome";     
}

とJSP

<td>    
  <form:select path="lookingfor">
  <form:option value="0" label="Select" /> 
  <form:options items="${lookingfor}" itemValue="lookingfor" itemLabel="lookingfor" />                 </form:select>           
</td>

モデルにユーザーを追加している間は正常に機能していますが、lookingfor 属性を追加しているときです。 model.addAttribute("探している"、探している);

次のエラーが発生します。

SEVERE: サーブレット jsp の Servlet.service() が例外をスローしましたgetter メソッド: getter の戻り値の型は、setter のパラメーターの型と一致していますか?

4

4 に答える 4

2

LookingForリストをModelMapオブジェクトに属性として追加する必要があります。

model.addAttribute("lookingfor", lookingfor);

また、itemValueとitemLabelの両方がlookingForリストのアイテムのプロパティを参照するため、属性「itemValue」と「itemLabel」の使用法を確認してください。両方で同じ値を使用していますが、それはちょっと間違っています。

于 2012-04-04T17:03:39.233 に答える
1

ModelAndView を返すこともできます

例えば

public ModelAndView showUserForm()  
{  
  mv= new ModelAndView("welcome");     
  User user = new User();
  mv.getModel.put("user",user);
  List<String> lookingfor=service.getOptions();
  //want to send this "lookingfor" to the jsp 
  mv.getModel().put("lookingfor",lookingfor);      
  return mv;     
}

編集: 以下のコメントに応じて、itemValue を見てください。これは、lookingfor オブジェクトのプロパティの 1 つである必要があります。この国リストの例を参照してください。

 <form:options items="${countryList}" itemValue="code" itemLabel="name"/>

ここで、リストは国オブジェクトのリストで、コードと名前は国オブジェクトのプロパティです

編集2

したがって、jspで行うだけです

<c:forEach var="item" items="${lookingfor}">
 <form:option value="${item}"/>
</c:forEach>
于 2012-04-04T17:07:38.880 に答える
0

こんな使い方もできます

@RequestMapping("get_vendor_tests.htm")
    public ModelAndView getVendorTests(@RequestParam int vendorId,Map<String, Object> map){
        try {
            map.put("vendor", vendorService.getVendor(vendorId));
            return new ModelAndView("vendor_tests","message",map);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
            logger.error("In vendor tests for vendor Id:"+vendorId+"",e);
            return new ModelAndView("error","message", e);
        }

    }
于 2012-04-04T17:10:08.200 に答える
0

モデルを使用してリストを返します

public String showUserForm(ModelMap model)  {       
  User user = new User();       
  model.addAttribute(user);
  //want to send this "lookingfor" to the jsp           
  List<String> lookingfor=service.getOptions();
  model.addAttribute("lookingFor", lookingFor);                 
  return "welcome";     
}

jsp で次のようなオプションを表示します。

  <form:select path="lookingFor">
      <form:option value="-" label="--Please Select"/>
      <form:options items="${lookingFor"}"/>
  </form:select>
于 2012-04-04T17:11:51.617 に答える