<s:select>错误:无法解析请求的列表键'typeSurvey'</s:select>

时间:2009-11-02 16:42:21

标签: jsp struts2

这是我的jsp:

<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>

这是我没有get / set

的动作
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");
}

为什么我有这个问题? *

  

标记'select',字段'list':   请求列表键'typeSurvey'可以   不能解决为   收集/阵列/图/枚举/迭代   类型。例如:人或人。{name}    - [未知位置]

我有struts2的最新版本。

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

问题是你没有为typeSurvey List声明一个getter, 尝试 public List<String> getTypeSurvey() { return typeSurvey; }

答案 2 :(得分:0)

问题是标签&lt; s:form action =“InsertSurvey”&gt; 仅在提交后显式运行,在您的情况下,操作未执行,因此typeSurvey值不可用。

答案 3 :(得分:0)

问题是你试图访问jsp页面(直接访问jsp页面)而不遍历任何操作,因此不会在进程中初始化你的列表。所以尝试在action的prepare方法中初始化列表。

答案 4 :(得分:0)

只需定义List typeSurvey的Getter和Setter

即可

创建typeSurvey的对象,并在构造函数中的列表中添加项目而不是在prepare方法中。