Jsp 复选框问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:28:25
jsp中
复选框获得值
<input type="checkbox" name="n" value="n">

DeleteAction中
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,

HttpServletResponse response)
{
String arg[]=request.getParameterValues("n");
MessageDao dao=new MessageDao();
dao.deleteMessage(arg);
return mapping.findForward("deletesuccess");
}

MessageDao 中
public void deleteMessage(String title[])
{
try
{
query=session.createQuery("from TMessage m

where m.title=?");
StringBuffer sb = new StringBuffer();
for(int i = 0; i < title.length; i++){
sb.append(title[i]);
}
query.setString(0, sb.toString());
List list=query.list();
for(int i=0;i<list.size();i++)
{
TMessage m=(TMessage)list.get(i);

String arg[]=request.getParameterValues("n");
这个你打印出来看看你取到值没

"from TMessage m where m.title=?" 然后sb里面的数据是所有title []的连接?
这样最后的SQL能查出来你想要的结果么??

应该传递TMessage的id,然后用 lianda220 的办法写最好。。

你的的程序貌似没问题,不过感觉你的deleteMessage写的有点复杂
private Configuration cfg = new Configuration().configure();
private SessionFactory factory = cfg.buildSessionFactory();
private Session session = null;

try {
session = factory.openSession();
session.beginTransaction();

for(int i=0; i<title.length; i++){
TMessage tMessage= (TMessage)session.load(TMessage.class, title[i]);
session.delete(tMessage);
}

session.getTransaction().commit();
} catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
session.close();
}
这个你看看 在事物中进行 呵呵

选中复选框要加上提交表单的事件