2009-11-02 62 views
0

這是我的jsp:<s:select>錯誤:請求列表鍵「typeSurvey」無法解析

<s:form action="InsertSurvey"> 
     <table> 
      <tr> 
       <td> ID Survey: </td><td><s:textfield name="SurveyValues.survey.idtextsurvey"/> </td> 
       <td> Tipo Survey: </td><td><s:select list="typeSurvey"/> </td> 

      </tr> 
     </table> 
    </s:form> 

,這是我的動作沒有獲取/設置

public class InsertSurveyAction extends ActionSupport implements Preparable { 

protected SurveyValues surveyValues; 
protected List typeSurvey; 
protected String typeSurveySelected; 

public InsertSurveyAction() { 

} 

@Override 
public String execute() throws Exception { 
    return SUCCESS; 
} 

public void prepare() throws Exception { 
    typeSurvey = new ArrayList(); 
    typeSurvey.add("Multi"); 
    typeSurvey.add("Singolo"); 
} 

爲什麼我有這個問題? *

tag 'select', field 'list': The requested list key 'typeSurvey' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]

我有struts2的最後一個版本。

回答

0
<struts> 
<constant name="struts.devMode" value="true"/> 
<constant name="struts.enable.DynamicMethodInvocation" value="false" /> 



<package name="default" extends="struts-default"> 

    <action name="InsertSurvey" class="it.survey.actions.InsertSurveyAction"> 
     <result name="success">/InsertSurvey_step1.jsp</result> 
    </action> 

</package> 

0

的事情是你沒有聲明一個getter是否typeSurvey列表, 嘗試 public List<String> getTypeSurvey() { return typeSurvey; }

0

的問題是,標籤< S:形式行動= " InsertSurvey " > 只能在提交後明確運行,在您的情況下,該操作未執行,因此typeSurvey值不可用。

0

問題是,您正在嘗試訪問jsp頁面(直接訪問jsp頁面),而無需遍歷任何操作,因此不會在過程中初始化您的列表。因此嘗試在操作的prepare方法中初始化列表。

+0

感謝您的留言!請勿在您的帖子中使用簽名/標語。您的用戶箱計爲您的簽名,您可以使用您的個人資料發佈您喜歡的任何關於您自己的信息。 [關於簽名/標語的常見問題](http://stackoverflow.com/faq#signatures) – 2013-02-24 09:41:02

0

只定義getter和的名單typeSurvey

二傳手,創造typeSurvey的對象,也是在列表中添加在構造函數中的項目不是在準備方法。

+0

我試着在構造函數中初始化列表,同時在實例var區域中聲明它。仍然不是運氣! :( – 2016-08-03 16:26:00