1、在struts.xml里加入 package、action、result标签
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 <package name="default" namespace="/action" extends="struts-default"> 5 <action name="Login" class="com.jeson.action.Login"> 6 <result name="Success">../Success.jsp</result> 7 <result name="Error">../Error.jsp</result> 8 </action> 9 </package> 10</struts>
action name就是这个action的名字,在form表单中的action里就写这个。class就是你的处理相应活动的class文件在哪里,我的这个就是在com.jeson.action包下的Login.class文件。
意思是当java文件返回Success时跳转到Success.jsp,当java文件返回Error时跳转到Error.jsp。
2、写Java类
package com.jeson.action; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.jeson.po.*; import com.jeson.po.Login; import com.opensymphony.xwork2.ActionSupport; public class Delete extends ActionSupport { private String username=""; private String password=""; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String execute() throws Exception { Session session = HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); String u; u = getUsername(); //p = getPassword(); //com.jeson.po.Login l = new com.jeson.po.Login(); com.jeson.po.Login l =(Login) session.get(com.jeson.po.Login.class,u); //l.setUsername(u); try { session.delete(l); tr.commit(); return "Success"; } catch(HibernateException e) { e.printStackTrace(); tr.rollback(); return "Error"; } finally { session.close(); } } }
首先要继承ActionSupport类,
其次这个类的成员变量要和网页中form表单提交的东西名字一样,比如我提交的是username和password,所以这个类两个成员变量也是这两个。
之后要重写public String execute() throws Exception ,这个方法是自动执行的,返回值就是刚才的success或者error。
3、在网页的form表单中使用就行了:
<form name="form2" method="post" action="action/Delete.action">
<label>用户名:
<input type="text" name="username">
</label>
<p>
<label>
<input type="submit" name="Submit" value="删除">
</label>
</p>
</form> <br>
值得注意的是,struts中的<package name="default" namespace="/action" extends="struts-default"> namespace=“/action”,所以,form表单的action也要加上action/。如果namespace=“/*” 在form里action直接写Delete.action就好了。