Вот небольшое тестовое приложение, которое выполняет следующие действия
- попросить пользователя ввести свое имя и отправить - (index.jsp)
- в результате index.jsp является страницей welcome.jsp, которая просит пользователя выбрать свою группу крови
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> </head>
<body>
<form action="MyName">
<s:textfield name="UserName" label="Enter Your Name"/>
<s:submit/>
</form><br>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="module1" namespace="" extends="struts-default">
<action name="MyName" class="module1.User">
<result>/Welcome.jsp</result>
</action>
<action name="Blood_Group" class="module1.SelectBloodGroup" method="bloodGroupList"/>
</package>
</struts>
SelectBloodGroup.java
package module1;
import java.util.ArrayList;
import com.opensymphony.xwork2.ActionSupport;
public class SelectBloodGroup extends ActionSupport{
private ArrayList<BloodGroup> bglist;
public String bloodGroupList(){
bglist = new ArrayList<BloodGroup>();
bglist.add(new BloodGroup("1","A+"));
bglist.add(new BloodGroup("2","B+"));
bglist.add(new BloodGroup("3","AB+"));
bglist.add(new BloodGroup("4","O+"));
bglist.add(new BloodGroup("5","A-"));
bglist.add(new BloodGroup("6","B-"));
bglist.add(new BloodGroup("7","AB-"));
bglist.add(new BloodGroup("8","O-"));
return "SUCCESS";
}
public ArrayList<BloodGroup> getBglist(){
return bglist;
}
}
class BloodGroup{
private String id;
private String bg;
BloodGroup(String id,String bg){
this.id=id;
this.bg=bg;
}
}
welcome.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<s:action name="Blood_Group" executeResult="false"/>
//***************here is the problem***************
<s:select list="bglist" listKey="id" listValue="bg"/>
//***********************************************
</body>
</html>
Struts не может идентифицировать bglist
как коллекцию, массив, список или итератор. ЧТО СЛЕДУЕТ НАЗНАЧИТЬ, ЧТОБЫ УКАЗАТЬ АТРИБУТ В СИСТЕМЕ: выберите TAG В ФАЙЛЕ welcome.jsp
Что не так с кодом, пожалуйста, скажите мне подробно. Если бы вы могли прислать мне исправленную версию. ПОЧЕМУ тег <s:action>
не работает?
Это ошибка, которую я получаю
13 апреля 2010 г., 13:49:19
org.apache.catalina.core.ApplicationDispatcher
вызвать SEVERE: Servlet.service () для
сервлет JSP бросил тег исключения
'select', field 'list': запрошенный
ключ списка 'bglist' не может быть
решен как
коллекция / массив / карта / перечисление / итератор
тип. Пример: люди или люди. {Имя}
- [неизвестное местоположение]