package com.myboxcn.action;import javax.annotation.Resource;import net.sf.json.JSONArray;import org.springframework.stereotype.Controller;import com.myboxcn.service.ProductTypeService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;@Controller("/control/producttype/list")
public class ProductTypeAction extends ActionSupport {
private String menuString;
@Resource ProductTypeService productTypeService;
public String execute(){
//ActionContext.getContext().put("productType", productTypeService.list());
System.out.println("asd");
       return "list";
}

}struts2 的action 到底调用了 execute 方法没有啊? 
如果调用了
我把 //ActionContext.getContext().put("productType", productTypeService.list()); 
这行注释 起来了,他因该不会有返回值才对啊. 可是 jsp页面里我还是可以这样 <s:iterator value="#request.productType">
    <s:property value="name"/> ,<s:property value="note"/><br/> 
得到 。还有调用了的话 System.out.println("asd"); 为什么不打印东西出来呢? 实现类package com.myboxcn.service.impl;import java.util.List;import javax.annotation.Resource;import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;import com.myboxcn.bean.ProductType;
import com.myboxcn.service.DAO;@Transactional
public abstract class Daosuppert implements DAO {
@Resource SessionFactory factory;
@Override
public void save(Object entity) {
factory.getCurrentSession().persist(entity);
     }
@SuppressWarnings("unchecked")
@Transactional(propagation=Propagation.NOT_SUPPORTED)
public List<ProductType> list() {
return factory.getCurrentSession().createQuery("from ProductType").list();
}
}

解决方案 »

  1.   

    你的情况我也遇过,我的感觉 就是class类没有变,或者是浏览器的缓存问题,你可以试试下面的方法:(0)在你的struts.xml中加入此句:
    <constant name="struts.serve.static.browserCache" value="false"></constant>(1)如果(0)不行,你再把你的jsp文件的名字改成另外一个名字(2)如果(1)不行,那么再改你的Action类的名字(3)如果(1)(2)不行,你可以考虑在tomcat安装文件夹下面找到work文件夹,然后在这个文件夹里面一层一层进去找到你当前这个工程,然后把它删除了.然后重新启动你的tomcat再次检验。(3)如果(1)(2)(3)都不行,你可以重新建一个工程,然后把这些文件放进去,然后进行测试,看行不行。