1

jspページに表示中のデータベースに格納されたテーブルから永続的に行を削除したい。1 回のクリックで行を削除するためのリンクDelete(行ごと) があります。

私のjspコードは次のとおりです。

    <s:iterator value="topperList" >
      <tr>
         <td><s:property value="uid"/></td>
         <td><s:property value="name"/></td>
         <td><s:property value="password"/></td>
         <td><s:property value="sex" /></td>
         <td><s:property value="age" /></td>
         <td><s:property value="city" /></td>
         <td><s:property value="abuse" /></td>
         <td><s:property value="lastlogin" /></td>
         <td><s:property value="points" /></td>
         <td><s:property value="joined" /></td>
         <td><s:property value="email" /></td>
         <s:url id="url" action="delete" >
           <s:param name="uid"><s:property value="uid" /></s:param>
         </s:url>
         <td><s:a href="%{url}">Delete</s:a></td>
      </tr> 
  </s:iterator>

アクションクラスの私のコードは次のとおりです。

private Integer uid;

public Integer getUid() {
    return uid;
}

public void setUid(Integer uid) {
    this.uid = uid;
}
public String delete() {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Users user = (Users) session.load(Users.class, this.getUid());
        if (null != user) {
            session.delete(user);
        }
        session.getTransaction().commit();
           return SUCCESS;
    }

struts.xml のアクション コード:

<action name="delete" class="com.rambo.action.FindToppers" method="delete" >
        <result name="success">buser.jsp</result>
    </action>

しかし、私はエラーが発生しています:

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [beans.Users#0]

table に適切な行があることを確認しましたUSERS with uid=56。しかし、識別子が存在する行がありません。ただし、サーバー エラー ログは取得されません。何が問題なのか指摘できますか。

4

2 に答える 2

0

私は問題を見ていると思います。問題はcid、アクションの属性がnull(実行できるSystem.out.println(cid)) であることです。が印刷されている場合nullは、おそらく で url パラメータをキャッチする必要がありますParameterAware

于 2012-07-15T11:44:41.833 に答える
0

プライベート整数 cid;

これは public である必要があり、int に変更することができます

于 2012-07-15T11:13:31.270 に答える