使用iterator实现遍历和删除

chenxyz707 2013-04-29 12:21:34
删除操作总是报错。其他插入查询操作都没有问题的。
错误信息Stacktraces
java.lang.NoSuchMethodException:com.hebut.action.addAction.delUser()
困扰我半天了
select.jsp页面:
<TABLE class=gridView id=ctl00_ContentPlaceHolder2_GridView1 
style="WIDTH: 100%; BORDER-COLLAPSE: collapse" cellSpacing=0 rules=all border=1>
<TBODY>
<TR>
<TH class=gridViewHeader scope=col>好友姓名</TH>
<TH class=gridViewHeader scope=col>详细住址</TH>
<TH class=gridViewHeader scope=col>电话号码</TH>

<TH class=gridviewHeader scope=col>删除</TH>
<TH class=gridviewHeader scope=col>修改</TH>
</TR>

<s:iterator value="list" var="l" status="s">
<tr>
<th class=gridViewHeader scope=col><s:property value="#l.name" /></th>
<th class=gridViewHeader scope=col><s:property value="#l.address " /></th>
<th class=gridViewHeader scope=col><s:property value="#l.phonenum" /></th>
<th> <a href="addbook/delUser.action?user=#l">
删除 </a> </th>
<th>修改</th>
</tr>
</s:iterator>
</TBODY>
</table>

action
public class addAction extends ActionSupport
{
private User user;
private UserService service;
private Map<String, Object> session;
private List<User> list;
public String delUser(User user) throws Exception{
service.deleteUsers(user);
return "del";
}
}

struts配置

<package name="addbook" extends="struts-default" namespace="/addbook">
<action name="delUser" class="com.hebut.action.addAction" method="delUser">
<result name="del">/del.jsp</result>
</action>
</package>

service
public class UserServiceImpl implements UserService
{
private UserDao dao;
/**dao的get set**/
public void deleteUsers(User user)
{
// TODO Auto-generated method stub
dao.delete(user);
}
}

dao
public class UserDao extends HibernateDaoSupport
{
public void delete(User user){
getHibernateTemplate().delete("from User where phonenum=?", user.getPhonenum());
}
}
...全文
498 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
panzhixiong_cn 2013-05-03
  • 打赏
  • 举报
回复
不错的问题。等待答案中。。
小丑哥_V5 2013-05-03
  • 打赏
  • 举报
回复
很明显是没有传值过去,?也不能传一个对象,只能xxx.action?user.id=x 这样后台的user对象里就会有一个id值,struts会自动匹配的,如果不用对象用字符传过去的就使用request.getParameter("xxx")
constanine_xia 2013-05-03
  • 打赏
  • 举报
回复
顶楼主,我也经常发生struts应用时,方法带参的低级错误。貌似因为从dao层开始编译的,所以得带参的思想一直延续到action类。。。。
chenxyz707 2013-05-03
  • 打赏
  • 举报
回复
额 ,上面少了一个“=”号
<a href="addbook/delUser.action?user.phonenum=${l.phonenum}">删除 </a> 
chenxyz707 2013-05-03
  • 打赏
  • 举报
回复
历时N天,在好几个人的帮忙下终于得以解决。现将解决方法公布如下: 1. 那个action方法不应该带参数的,低级错误。 2. UserDao里面的delete方法改成
public class UserDao extends HibernateDaoSupport{public void  delete(User user){        getHibernateTemplate().delete(user));    }}
3. 正如16楼所说,需要使用el表达式,而不是user=#l或者user.phonenum=#l.phonenum.改为
<a href="addbook/delUser.action?user.phonenum${l.phonenum}"> 
                                   删除 </a>
或者
<a href="addbook/delUser.action?user.phonenum=<s:property value="phonenum" />"> 
                                   删除 </a>
过两天结贴,大家畅所欲言。
liuyuhua0066 2013-05-03
  • 打赏
  • 举报
回复
Struts2中的action方法是不能有参数的 只能借助setter getter来完成形参功能
haohaohao000111 2013-05-03
  • 打赏
  • 举报
回复
struts页面向后台传值只支持基本数据类型和string,如果是传对象那个需要写个类型转化器. 就你问题可以<a href="addbook/delUser.action?user。id=#l。id"> 删除 </a>或者直接传id,后台根据id删除 还有3楼说的,方法去掉参数
larzy_zy 2013-05-02
  • 打赏
  • 举报
回复
<a href="addbook/delUser.action?user=#l"> 错了,首先根本不能传User,只能传字符串等简单类型;其次,user=#1传到后台是个字符串,只能用getParameter取出来,你要这么写应该是"user=" + el表达式。
chenxyz707 2013-05-01
  • 打赏
  • 举报
回复
引用 13 楼 deng6260964 的回复:
NullPointerException 你user为空吧 页面没传值过来
点击每个 修改 连接会自动将user传过去呀
chenxyz707 2013-05-01
  • 打赏
  • 举报
回复
引用 10 楼 yang18y321 的回复:
3楼回答的是正确的 方法不能带参数
方法是有问题我也改过了,但是还是不是解决问题的方法。
yang18y321 2013-04-30
  • 打赏
  • 举报
回复
3楼回答的是正确的 方法不能带参数
chenxyz707 2013-04-30
  • 打赏
  • 举报
回复
引用 8 楼 tagalongs 的回复:
<a href="addbook/delUser.action?user=#l">删除</a> 把这个user的id传过去,后台处理用id,就行了
能说具体一点吗?谢谢。
守望bdz 2013-04-30
  • 打赏
  • 举报
回复
NullPointerException 你user为空吧 页面没传值过来
qq2389835815 2013-04-30
  • 打赏
  • 举报
回复
<a href="addbook/delUser.action?user=#l"> 改成 <a href="addbook/delUser.action?user.phonenum=#l.phonenum">
liangchengfck1 2013-04-30
  • 打赏
  • 举报
回复
删除重要指定某一个ID把 你数据访问层没有把id传进去
tagalongs 2013-04-29
  • 打赏
  • 举报
回复
<a href="addbook/delUser.action?user=#l">删除</a> 把这个user的id传过去,后台处理用id,就行了
chenxyz707 2013-04-29
  • 打赏
  • 举报
回复
引用 6 楼 deng6260964 的回复:
user不用get set方法吗?
addacion里面有user的get和set了,没写出来。
守望bdz 2013-04-29
  • 打赏
  • 举报
回复
user不用get set方法吗?
chenxyz707 2013-04-29
  • 打赏
  • 举报
回复
我现在怀疑是delete语句写错,或者页面的
<th> <a href="addbook/delUser.action?user=#l">删除 </a></th>
写的有问题
chenxyz707 2013-04-29
  • 打赏
  • 举报
回复
改了之后还是有异常。 Messages: File: com/hebut/dao/UserDao.java Line number: 18 delete方法有异常 -------------------------------------------------------------------------------- Stacktraces java.lang.NullPointerException
加载更多回复(3)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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