这是我的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的最新版本。
答案 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方法中。