最近继续折腾Struts2.1.8的注解配置,因为简练,所以喜欢,以下采自注解版的eshop项目的部分源码,留作备用 package com.Aneshop.action; import java.util.*; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.hibernate.Query; import org.hibernate.Session; import com.Aneshop.bean.*; import com.Aneshop.tools.HibernateUtil; import com.opensymphony.xwork2.*; @ParentPackage("publicPackage") public class GoodsAction extends ActionSupport implements ModelDriven<GoodsBean> { private GoodsBean modelBean = new GoodsBean(); private Session session = HibernateUtil.getSessionFactory() .getCurrentSession(); public List<GoodsBean> gds = new ArrayList<GoodsBean>(); private HttpServletRequest req; private ActionContext ctx; public GoodsBean getModel() { return modelBean; } /** * 全部商品列表 * */ // 注意Action返回时的N层路径 @Action(value = "allgds", results = { @Result(name = "gdsok", location = "../../../shopbg/bg-goodSelect.jsp") }) public String Gdlist() throws Exception { session.beginTransaction(); Query qr = session.createQuery("from GoodsBean"); gds = qr.list(); session.getTransaction().commit(); return "gdsok"; } /** * 删除商品 * * @return * @throws Exception */ @Action(value = "delgds", results = { @Result(name = "delgdsok", type="chain",location="allgds") }) public String doGddel() throws Exception { req = ServletActionContext.getRequest(); int delid = Integer.parseInt(req.getParameter("delid")); session.beginTransaction(); GoodsBean gdbean = (GoodsBean) session.get(GoodsBean.class, delid); session.delete(gdbean); session.getTransaction().commit(); return "delgdsok"; } /** * 添加商品 * @return * @throws Exception */ @Action(value = "addgds", results = { @Result(name = "addgdsok", type="chain",location="allgds") }) public String add() throws Exception { // System.out.println(getModel().getGsmark()); // doGdpicup(); // 调用上传方法完成图片上传 session.beginTransaction(); // getModel().setGspicture( // "/" + savepath + "/" + pic.getFileFileName()); session.save(getModel()); session.getTransaction().commit(); return "addgdsok"; } } 费了很大劲才搞出来的,其中的一些细节还有待推敲.