Struts2.0フォームでselectタグを使用してコミット中にエラーが発生しました


フォーム用にselectラベルが付いています.ページの初期化はすべて正常で、selectも正常に初期化されています.
しかし、私が提出したとき、次のエラーが発生しました.
重大:サーブレットservice() for servlet jsp threw exception
tag 'select', field 'list', name 'functions.typeId': The requested list key '%{types}' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
アプリケーションでは2つのAction、2つのjspページを使います.
1つFunctionsAction、1つFunctionstypeAction
add_function.jsp,add_1functions_success.jsp
有休プロセスは私がFunctionstypeActionからfunctionstypesのリストを取得したものです.
add_を初期化するために使用function.jspのselectラベル、
そしてフォームをFunctionsActionのinsertメソッドにコミットします
add_function.jsp初期化は正常ですが、
ただしポイントがFunctionsActionにコミットされたときはページが空白になります
ソースファイルを見てみるとページの一部しか実行されていませんが、
コードは次のとおりです.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>  </title>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
	</head>
	<body style="text-align:center;">
		
		
		
					
<form id="insertFunction" onsubmit="return true;" action="insertFunction.action" method="post">
<table class="wwFormTable">

Action、xml構成、jspページのコードを以下に示します.
FunctionsAction:
package com.mp.job.baseinfo.action;

import java.util.List;

import com.mp.job.baseinfo.service.IFunctionsService;
import com.mp.job.baseinfo.vo.Functions;
import com.mp.job.common.service.JobActionSupport;
import com.mp.job.exception.BaseException;
import com.mp.job.util.Pager;

@SuppressWarnings("serial")
public class FunctionsAction extends JobActionSupport {
	private IFunctionsService functionsService;
	private Functions functions;
	private List functionsRecords;
	@SuppressWarnings("unused")
	private Object[][] params;
	private Pager pager;

         <!-- getter setter    ! -->
	
	public String insert()throws BaseException{
		try{
		functionsService.save(functions);
		}catch(Exception e){
			e.toString();
			addActionMessage("         !");
			return INPUT;
		}
		return SUCCESS;
	}
	<!--         -->
		
}

FunctionstypeAction:
package com.mp.job.baseinfo.action;

import java.util.List;

import com.mp.job.baseinfo.service.IFunctionstypeService;
import com.mp.job.baseinfo.vo.Functionstype;
import com.mp.job.common.service.JobActionSupport;
import com.mp.job.exception.BaseException;
import com.mp.job.util.Pager;

@SuppressWarnings("serial")
public class FunctionstypeAction extends JobActionSupport {
	private IFunctionstypeService functionstypeService;
	private Functionstype functionstype;
	private List functionstypes;
	private List functionstypeRecords;
	
	@SuppressWarnings("unused")
	private Object[][] params;
	private Pager pager;

	<!-- getter setter    ! -->
	
	@SuppressWarnings("unchecked")
	public String getAllFunctionstypes()throws BaseException{
			functionstypes = functionstypeService.findAll();
			return null;
	}
		
	<!--         ! -->

	public List getFunctionstypes() {
		return functionstypes;
	}

	public void setFunctionstypes(List functionstypes) {
		this.functionstypes = functionstypes;
	}
	
}

struts.xml 
----->>>アクションはSpringで設定しました
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!-- ================================================================== -->
	<!--                       functionsAction                                -->
	<!-- ================================================================== -->
	<package name="functions" namespace="/admin/BaseInfo"
		extends="struts-default">
		<action name="insertFunction" class="functionsAction"
			method="insert">
			<result name="success">search_Functions.jsp</result>
			<result name="input">add_function.jsp</result>
		</action>
           <!--        -->
	</package>
	<!-- ================================================================== -->
	<!--                       Action                                -->
	<!-- ================================================================== -->
	<package name="functionstype" namespace="/admin/BaseInfo"
		extends="struts-default">
		<action name="getAllFunctionstypes" class="functionstypeAction"
			method="getAllFunctionstypes">
		</action>
           <!--        -->
	</package>
</struts>

add_function.jsp:  
このページだけで二日もよく眠れなかった.
<%@page language="java" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>  </title>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
	</head>
	<body style="text-align:center;">
		<s:actionmessage />
		<s:action name="getAllFunctionstypes" id="getAllFunctionstypes" />
		<s:set name="types" value="#getAllFunctionstypes.functionstypes"/>
		<s:form action="insertFunction.action" method="post">
			<s:select list="%{types}"
					  listKey="id"
					  listValue="name"
					  name="functions.typeId"
					  label="  "/>
			<s:textfield name="functions.name" label="  "/>
			<s:submit value="  "/>
		</s:form>
		<hr/>
	</body>
</html>

add_function_success.jsp:
このページはとても简単で、个人は间违いがここに出ないと思って、ほほほ
<%@page language="java" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
		<title>  </title>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
	</head>
	<body style="text-align:center;">
		<table width="350px" height="150px" align="center" bgcolor="#ffff00">
			<tr><td style="color:#00ff00;"><b>      !</b><br/><br/>
				<a href="add_function.jsp">    </a>    <a href="listAllFunctions.action">    </a>
			</td></tr>
		</table>
	</body>
</html>

私の今の感じはリストが同じActionから呼び出すしかなく、同じActionに提出するしかないのではないでしょうか???