cannot be cast to java.util.Collection

xping0211 2012-04-13 10:52:47
package com.hollycrm.hollyv8.zsptest.zsp.service.impl;

import ...
public class UserManagerServiceImpl implements UserManagerService {
private UserManagerDao userDao;

public void setUserManagerDao(UserManagerDao userDao){

this.userDao = userDao ;
}
public UserManagerDao getUserManagerDao(){

return this.userDao ;
}


public void addUser(UserInfo user) {

this.userDao.add(user) ;

}

public void deleteUser(String account) {
// TODO Auto-generated method stub
this.userDao.delete(account) ;
}
public UserInfo getUser(String account) {
// TODO Auto-generated method stub
return this.userDao.getUserInfo(account);
}
public UserInfo getUser(String name, String account) {
// TODO Auto-generated method stub
List<UserInfo> list = this.userDao.getUserInfo(name, account);
if(list != null&&list.size() > 0){
return list.get(0);
}else{
return null;
}
}
public List<UserInfo> listUser() {
// TODO Auto-generated method stub
return this.userDao.getUserInfos();
}
public void saveOrUpdate(UserInfo user) {
// TODO Auto-generated method stub
this.userDao.saveOrUpdate(user);
}
public UserInfo query(){
return this.userDao.query();
}

}



com.hollycrm.hollyv8.zsptest.zsp.service.impl.UserManagerServiceImpl cannot be cast to java.util.Collection 



大家帮我看看这是怎么回事?
...全文
2168 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
哪個jsp多少行報這個錯?

你的action咋寫的?
ylovep 2012-04-13
  • 打赏
  • 举报
回复
List<UserInfo> list = this.userDao.getUserInfo(name, account);
强制转换呢?List<UserInfo> list =(UserInfo) this.userDao.getUserInfo(name, account);
xping0211 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
什么框架?
[/Quote]
struts+spring+Hibernate 不知道您是不是问的这个。
ever089010 2012-04-13
  • 打赏
  • 举报
回复
什么框架?
xping0211 2012-04-13
  • 打赏
  • 举报
回复
这是主页面,zsp_search.jsp
<%@ page language="java" import="java.util.*,com.hollycrm.hollyv8.constant.*"  pageEncoding="GBK"%>
<%@ taglib prefix="view" uri="/WEB-INF/hollycrm-view.tld" %>
<%@ taglib prefix="sv" uri="/WEB-INF/hollycrm-services.tld" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.ArrayList"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head><title>人员查询系统</title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/framework/css/style.css">
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/framework/css/hollycrm.css">

<script language="javascript" src="<%=request.getContextPath() %>/framework/js/util.js"></script>
<script src="<%=request.getContextPath() %>/framework/js/ScrollGrid.js"></script>
<script src="<%=request.getContextPath() %>/framework/js/leftMenu.js"></script>
<script type="text/javascript" src="<%=request.getContextPath() %>/frame/js/frame.js" charset="gb2312"></script>
<script type="text/javascript">
function submitform(){
with(document.getElementById('queryallform')){
action="ZspAction";
method="get";
submit();
}
}
</script>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<form action="ZspAction!query.action">
<view:formtable>
<view:formtitle name="人员查询">
<view:buttons>
<view:button name="查 询" type="submit" onclick="submitform();" />
<view:button name="重 置" type="reset"/>


</view:buttons>
</view:formtitle>

<view:formCondition>
<view:formtr>
<view:formlabel text="账 号:"></view:formlabel>
<view:forminput><input name="account" type="text"> </view:forminput>
<view:formlabel text="姓 名:" ></view:formlabel>
<view:forminput><INPUT name="name" type="text"> </view:forminput>
</view:formtr>
<view:formtr>
<view:formlabel text="生日:"></view:formlabel>
<view:forminput width="20%"><view:datepicker name="stateHireDate"/></view:forminput>
<view:formlabel text="性别:" ></view:formlabel>
<view:forminput>
男<input type="radio" checked="checked" name="sex" value="b" />
女<input type="radio" name="sex" value="g" /><br />
<!--<sv:codeMap name="user.status" codeType="<%=CodeType.USERSTATE%>" ></sv:codeMap>-->
</view:forminput>
</view:formtr>
</view:formCondition>
</view:formtable>
</form>
</body>
</html>
showresult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="java.util.ArrayList"%>
<%@ taglib prefix="view" uri="/WEB-INF/hollycrm-view.tld" %>
<%@ taglib prefix="sv" uri="/WEB-INF/hollycrm-services.tld" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="com.hollycrm.framework.util.ToFormQueryCondition"%>
<%@page import="com.hollycrm.hollyv8.constant.CodeType"%>
<%@page import="com.hollycrm.hollyv8.zsptest.zsp.action.ZspAction"%>
<%@ page import="com.hollycrm.hollyv8.zsptest.zsp.vo.UserInfo"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<TITLE>人员增删改查</TITLE>

</head>
<body>

<table>
<tr>
<td>账号</td>
<td>姓名</td>
<td>生日</td>
<td>性别</td>
</tr>
<s:iterator value="users" >
<tr>
<td><s:property value="account"/></td>
<td><s:property value="name"/></td>
<td><s:property value="birthday"/></td>
<td><s:property value="sex"/></td>
<td> <s:a href="ZspAction!add.action">增加</s:a></td>
<td><a href="ZspAction!update?id=<s:property value="account"/>">修改</a>
<a href="ZspAction!delete?id=<s:property value="account"/>">删除</a></td>
</tr>
</s:iterator>
</table>
</body>
</html>

这是结果显示页面,我刚才说错了,如果在zsp_search.jsp页面中什么都不输入,直接点查询,没有错误,如果输入点东西,就会报上面的错误。
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
应该是想用setter注入吧,但是你的方法名为什么不是setUserDao,却是setUserManagerDao,你这样如何注入?
方法名一定要用setUserDao吗?
我是在打开jsp页面的时候报这个错误的。
[/Quote]

你用setter注入, private UserManagerDao userDao;

必须是setUserDao。

你jsp中如何写的,贴一下。
xping0211 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
应该是想用setter注入吧,但是你的方法名为什么不是setUserDao,却是setUserManagerDao,你这样如何注入? [/Quote]
方法名一定要用setUserDao吗?
我是在打开jsp页面的时候报这个错误的。
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
你什么情况下报这个错?
倒是发现你的注入怪怪的。

public void setUserManagerDao(UserManagerDao userDao){

this.userDao = userDao ;
}
public UserManagerDao getUserManagerDao(){

return this.userDao ;
}
应该是想用setter注入吧,但是你的方法名为什么不是setUserDao,却是setUserManagerDao,你这样如何注入?
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

这个问题已经解决,但是现在的问题是输入的数据能够提交到数据库中,但是页面上显示不出来。我怀疑是下面的问题,不知道对不对。Java code
<s:iterator value="users" >
<tr>
<td><s:property value="account"/></td>
<td><s:property value="nam……
[/Quote]

在action中,可以用request.setAttribute("users",users);存起來
xping0211 2012-04-13
  • 打赏
  • 举报
回复
这个问题已经解决,但是现在的问题是输入的数据能够提交到数据库中,但是页面上显示不出来。我怀疑是下面的问题,不知道对不对。
<s:iterator value="users" >
<tr>
<td><s:property value="account"/></td>
<td><s:property value="name"/></td>
<td><s:property value="birthday"/></td>
<td><s:property value="sex"/></td>
<td> <s:a href="ZspAction!add.action">增加</s:a></td>
<td><a href="ZspAction!update?id=<s:property value="account"/>">修改</a>
<a href="ZspAction!delete?id=<s:property value="account"/>">删除</a></td>
</tr>
</s:iterator>
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
user是null。你還是去看看spring 和 hibernate 基礎知識吧。
xping0211 2012-04-13
  • 打赏
  • 举报
回复
怎么都没有人来给点意见呢?看来我这个程序是无药可救了。。。。
xping0211 2012-04-13
  • 打赏
  • 举报
回复
	public String query(){
users=new ArrayList<UserInfo>();
UserManagerService b= (UserManagerService) DefaultBeanFactory.getBean("UserManagerService");
b.addUser(user);
return "list1_success";
}

我把它改成上面这样,倒是不报那个错误了,但是报另外一个错误
attempt to create saveOrUpdate event with null entity
我真是崭新崭新的新手,求求大家帮帮我,我快疯啦!!
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

问题貌似出在ZspAction中的这一句。。。可是要怎么改呢???
Java code
users.addAll((Collection<? extends UserInfo>) b);
[/Quote]

怎麽改?你的整個IOC都有問題。
你的b是UserManagerService類型,
怎麽可以強制轉換為(Collection<? extends UserInfo>)?
xping0211 2012-04-13
  • 打赏
  • 举报
回复
 public String query(){
users=new ArrayList<UserInfo>();
UserManagerService b=(UserManagerService) DefaultBeanFactory.getBean("UserManagerService");
if(b.getUser(account)!=null){
users.addAll((Collection<? extends UserInfo>) b);
}
return "list1_success";
}


这一段要怎么写呢?我试了半天都不行,我是新手,请大家帮忙。
xping0211 2012-04-13
  • 打赏
  • 举报
回复
问题貌似出在ZspAction中的这一句。。。可是要怎么改呢???
users.addAll((Collection<? extends UserInfo>) b);
昨日凡阳 2012-04-13
  • 打赏
  • 举报
回复
你的IOC用的真是奇怪,讓人雲裏霧裏。

你的錯誤在這裏:

public String query(){
users=new ArrayList<UserInfo>();
UserManagerService b=(UserManagerService) DefaultBeanFactory.getBean("UserManagerService");
if(b.getUser(account)!=null){
users.addAll((Collection<? extends UserInfo>) b);
}
return "list1_success";
}



users.addAll((Collection<? extends UserInfo>) b);
這一句有問題。
xping0211 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
哪個jsp多少行報這個錯?

你的action咋寫的?
[/Quote]
package com.hollycrm.hollyv8.zsptest.zsp.action;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.ServletRequestAware;

import com.hollycrm.framework.DefaultBeanFactory;
import com.hollycrm.hollyv8.organization.user.action.UserAction;
import com.hollycrm.hollyv8.zsptest.zsp.service.UserManagerService;
import com.hollycrm.hollyv8.zsptest.zsp.vo.UserInfo;
import com.opensymphony.xwork2.ActionSupport;

public class ZspAction extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;

private static final long serialVersionUID = 8729730792551753250L;

private static Logger logger = Logger.getLogger(UserAction.class);

public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public String ZspAction(){

return "list_success";

}

private UserManagerService userManager;
private List<UserInfo> users;
private UserInfo user;
// private String id;
private String account;
private String name;
private String birthday;
private String sex;
private String[] accounts;


public String[] getAccounts() {
return accounts;
}

public void setAccounts(String[] accounts) {
this.accounts = accounts;
}

public UserManagerService getUserManager() {
return userManager;
}

public void setUserManager(UserManagerService userManager) {
this.userManager = userManager;
}

public List<UserInfo> getUsers() {
return users;
}

public void setUsers(List<UserInfo> users) {
this.users = users;
}

public UserInfo getUser() {
return user;
}

public void setUser(UserInfo user) {
this.user = user;
}

/*public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}*/

public String getAccount() {
return account;
}

public void setAccount(String account) {
this.account = account;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday = birthday;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String query1(){
users=new ArrayList<UserInfo>();
UserInfo u=new UserInfo();
u.setAccount("zhangpf");
u.setName("zhangpengfei");
u.setBirthday("1981-12-02");
u.setSex("m");
users.add(u);
return "list1_success";
}

public String query(){
users=new ArrayList<UserInfo>();
UserManagerService b=(UserManagerService) DefaultBeanFactory.getBean("UserManagerService");
if(b.getUser(account)!=null){
users.addAll((Collection<? extends UserInfo>) b);
}
return "list1_success";
}

public String add() {
if (this.userManager.getUser(user.getName(),user.getAccount()) != null) {
return INPUT;
} else {
this.userManager.addUser(user);
return "success_add";
}

}

public String list() {
this.users = this.userManager.listUser();
if (this.users.size() > 0) {
return "list1_success";
// return SUCCESS;
} else {
return INPUT;
}
}

public String delete() {

if (this.account !="0" ) {
this.userManager.deleteUser(this.account);
} else {
if (accounts.length > 0) {
for (String account : accounts) {
this.userManager.deleteUser(account);
}
}
}
if (this.userManager.listUser().size() > 0) {
return "list1_success";
// return SUCCESS;
} else {
return INPUT;
}
}
public String saveOrUpdate() {

this.userManager.saveOrUpdate(user);
return SUCCESS;

}

public String edit() {

this.user = this.userManager.getUser(account);
return "success_edit";

}

public String save() {
String account = this.user.getAccount();
user = this.userManager.getUser(account);
return SUCCESS;
}

public String update() {

String account = this.user.getAccount();
this.userManager.saveOrUpdate(user);
//return SUCCESS;
return "success_update";
}

public String login() {
UserInfo emp = this.userManager.getUser(name, account);
List list = this.userManager.listUser();
if (null != emp) {
return SUCCESS;
} else {
if (list.size() > 0) {
return INPUT;
} else {
return ERROR;
}
}
}
}


JDK 1.5的泛型實現(Generics in JDK 1.5) 1 侯捷觀點 JDK 1.5的泛型實現 — Generics in JDK 1.5 — 北京《程序員》 2004/09 台北《Run!PC》2004/09 作者簡介:侯捷,資訊教育、專欄執筆、大學教師。常著文章自娛,頗示己志。 侯捷網站:http://www.jjhou.com(繁體) 北京鏡站:http://jjhou.csdn.net(簡體) 永久郵箱:jjhou@jjhou.com . 讀者基礎:有 Java語言基礎,使用過 Java Collections。 . 本文適用工具: JDK1.5 . 本文程式源碼可至侯捷網站下載 http://www.jjhou.com/javatwo-2004-reflection-and-generics-in-jdk15-sample.ZIP . 本文是 JavaTwo-2004技術研討會同名講題之部分內容書面整理。 . 關鍵術語: persistence(永續性、持久性) serialization(序列化、次第讀寫) generics(泛型) polymorphism(多型) 全文提要 泛型技術與 Sun JDK的淵源可追溯自 JDK1.3。但無論 JDK 1.3或 JDK1.4,都只是 以編譯器外掛附件的方式來支援泛型語法,並且 Java標準程式庫未曾針對泛型全 侯捷觀點 Generics in JDK 1.5 面改寫。而今 JDK1.5正式納入泛型。本文討論 JDK1.5的泛型實現,包括如何使 用及自訂 generic classes and algorithms,其中若干語法異於 JDK 1.3和 1.4。 我 我我我我曾經在 JavaTwo 2002大會上針對泛型技術給出一個講題,並將內容整理為《Java 泛型技術之發展》一文(http://www.jjhou.com/javatwo-2002.htm)。該文所談的 Java 泛型語法以及 Java泛型技術之內部實作技術,在今天(被 JDK 1.5正式納入)依 然適用。但由於有了若干小變化,並且由於 Java標準程式庫的全面改寫,使我認 為有必要再整理這篇文章,讓讀者輕鬆地在 JDK 1.5中繼續悠遊「泛型」技術。 閱讀本文之前,如果自覺基礎不夠,可以補充閱讀適才提到的《Java泛型技術之 發展》,那是一篇非常完整的文章,可助您完整認識泛型技術的來龍去脈。 Sun JDK的泛型發展歷史要從 1.3版說起。該版本配合 GJ,正式進入泛型殿堂。 所謂 GJ是 "Generic Java" 的縮寫,是一個支援泛型的 Java編譯器補充件,可謂 Java 泛型技術的先趨。隨後,泛型議題正式成為 JSR #14,其技術基礎便是源自 GJ。 JDK1.4搭配 JSR14提供的外掛附件,使泛型技術在 Java世界從妾身未明的身份扶 正而為眾所屬目的焦點。今天,JDK1.5終於內建泛型特性,不僅編譯器不再需要 任何外力(外掛附件)的幫助,整個 Java標準程式庫也被翻新(retrofit),許多 角落針對泛型做了改寫。 讓我們把帶有「參數化型別」(parameterized types)的 classes稱為 generic classes, 把帶有「參數化型別」的 methods稱為 generic algorithms,那麼,對眾多 Java程 式員而言,泛型帶來的影響不外乎以下四點,稍後逐一說明。 ..如何使用 generic classes ..如何使用 generic algorithms ..如何自訂 generic classes ..如何自訂 generic algorithms 在此先提醒您,運用泛型時,加上 –Xlint:unchecked編譯選項,可讓編譯器幫 助我們檢查潛在的型別轉換問題。 侯捷觀點 JDK 1.5的泛型實現(Generics in JDK 1.5)3 使用 Generic Classes Generic classes的最大宗運用是 collections(群集),也就是實作各種資料結構(例 如 list, map, set, hashtable)的那些 classes。也有人稱它們為容器( containers)。這 些容器被設計用來存放 Object-derived元素。而由於 Java擁有單根繼承體系,任 何 Java classes都繼承自 java.lang.Object,因此任何 Java ob

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧