Java 无法使用usebean生成错误处理程序
如何使用此代码检查下拉列表是否没有值Java 无法使用usebean生成错误处理程序,java,jsp,servlets,Java,Jsp,Servlets,如何使用此代码检查下拉列表是否没有值 <td width="168"><select name="OrgType" class="txtbox" tabindex="1"> <option value="1">Please choose...</option> <% I
<td width="168"><select name="OrgType" class="txtbox" tabindex="1">
<option value="1">Please choose...</option>
<%
Iterator it2 = Org_Items2.iterator();
while (it2.hasNext())
{
OrganizationItems orgItem2 = (OrganizationItems) it2.next();
//EMSItems newsItem4 = new EMSItems();
%>
<option value=<%=orgItem2.getOrgTypeId()%>><%=orgItem2.getOrgTypeName()%></option>
<%
}
%>
</select></td>
<td width="120">
<%
if (errors.containsKey("OrgType"))
{
out.println("<span class=\"warning\">" + errors.get("OrgType") + "</span>");
}
%>
</td>
我正在我的首页中使用usebean标签
<%@ page import="java.util.Iterator"%>
<%@ page import="data_registration_items.OrganizationItems"%>
<jsp:useBean id="Org_Items2" scope="request" type="java.util.List" />
如何正确验证下拉列表是否传递了正确的值
我试图删除标题中的usebean。在我的servlet中,我已经有了
List<OrganizationItems> orgItems2 = new SetOrganizationType().OrgTypeList();
req.setAttribute("Org_Items2", orgItems2).
在选项2中,我也尝试了,但出现了一个错误
java.lang.ClassCastException: java.util.LinkedList cannot be cast to java.util.ArrayList
java.lang.InstantiationException:在范围内找不到bean Org_项
当您使用类型
属性而不是类
属性,并且所需的bean实例在指定范围内不可用时,
将引发此异常
因此,基本上有两种解决方案:
可以找到它
request.setAttribute("Org_Items", Org_Items);
但是,实际上,这样你根本不需要整个
。它将通过${Org\u Items}
直接在EL中提供类
属性,以便
在作用域中找不到时自动创建一个。您应该只将FQN更改为java.util.ArrayList
,因为java.util.List
作为接口没有默认构造函数
与具体问题无关。这段代码包含一些不良做法(,不尊重,使用
)。我建议学习如何分离关注点并查看。它还包含一个验证和错误处理的示例。请帮助我解决这个问题:(我试图删除标题中的usebean。在我的servlet中,我已经有了req.setAttribute(“Org_Items2”,orgItems2);因此您使用的是LinkedList
而不是ArrayList
?请将class
属性更改为java.util.LinkedList
。
Org_Items2 cannot be resolved
java.lang.ClassCastException: java.util.LinkedList cannot be cast to java.util.ArrayList
request.setAttribute("Org_Items", Org_Items);