[已解决]HTTP Status 404 - No result defined for action xxx and result exception问题

2024-08-29 15:58

本文主要是介绍[已解决]HTTP Status 404 - No result defined for action xxx and result exception问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在做crm项目练习时,发现在添加客户的时候页面出现HTTP Status 404 - No result defined for action xxx and result exception错误,而控制台没有报任何错误信息。

    Action类

package com.tangseng.web.action;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.tangseng.domain.Customer;
import com.tangseng.service.CustomerService;
import com.tangseng.utils.PageBean;public class CustomerAction extends ActionSupport implements ModelDriven<Customer> {//接收表单传入参数private Customer customer = new Customer();private Integer currentPage;private Integer pageSize;//获得serviceprivate CustomerService cs;//查询分页列表public String list(){//调用service层处理分页逻辑,返回pageBeanPageBean pb = cs.getPageBean(customer,currentPage,pageSize);pb.setSearchname(customer.getCust_name());//将pageBean封装到request域中ActionContext.getContext().put("pageBean", pb);return "list";}public String add(){cs.save(customer);return "tolist";}@Overridepublic Customer getModel() {return customer;}public void setCurrentPage(Integer currentPage) {this.currentPage = currentPage;}public void setPageSize(Integer pageSize) {this.pageSize = pageSize;}public void setCs(CustomerService cs) {this.cs = cs;}public Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;}public Integer getCurrentPage() {return currentPage;}public Integer getPageSize() {return pageSize;}}

service类

package com.tangseng.service.Imp;import java.util.List;import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;import org.apache.commons.lang3.StringUtils;
import com.tangseng.dao.CustomerDao;
import com.tangseng.domain.Customer;
import com.tangseng.service.CustomerService;
import com.tangseng.utils.PageBean;public class CustomerServiceImp implements CustomerService {private CustomerDao cd;public void setCd(CustomerDao cd) {this.cd = cd;}@Overridepublic PageBean getPageBean(Customer customer, Integer currentPage, Integer pageSize) {//封装离线查询对象DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);if(StringUtils.isNotBlank(customer.getCust_name())){dc.add(Restrictions.like("cust_name", "%"+customer.getCust_name()+"%"));}//根据条件查询总记录数Integer totalCount = cd.findTotalCount(dc);//封装pageBean对象PageBean pb = new PageBean(currentPage, totalCount, pageSize);//计算索引(在pageBean中算好)//根据条件查询列表List<Customer> customerlist = cd.findPageList(dc,pb);//整合pageBean返回pb.setList(customerlist);return pb;}@Overridepublic void save(Customer customer) {System.out.println(customer.toString());cd.saveorupdate(customer);}}

BaseDao类

package com.tangseng.dao.Imp;import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;import com.tangseng.dao.BaseDao;
import com.tangseng.utils.PageBean;public class BaseDaoImp<T> extends HibernateDaoSupport implements BaseDao<T> {private Class clazz;//用于接收运行时的泛型类型public BaseDaoImp(){//获得当前类型的带有泛型的父类ParameterizedType genericSuperclass = (ParameterizedType) this.getClass().getGenericSuperclass();//获得运行期的泛型类型clazz = (Class) genericSuperclass.getActualTypeArguments()[0];}@Overridepublic void save(T t) {getHibernateTemplate().save(t);}@Overridepublic void delete(T t) {getHibernateTemplate().delete(t);}@Overridepublic void delete(Serializable id) {T t = findById(id);delete(t);}@Overridepublic void modify(T t) {getHibernateTemplate().update(t);}@Overridepublic T findById(Serializable id) {T t = (T) getHibernateTemplate().get(clazz, id);return t;}@Overridepublic Integer findTotalCount(DetachedCriteria dc) {Integer totalcount = null;dc.setProjection(Projections.rowCount());List totalcountlist = getHibernateTemplate().findByCriteria(dc);if(totalcountlist.size()>0&&totalcountlist!=null){String string = totalcountlist.get(0).toString();totalcount = Integer.parseInt(string);}//清空函数查询dc.setProjection(null);return totalcount;}@Overridepublic List<T> findPageList(DetachedCriteria dc, PageBean pb) {//分页查询操作List<T> list = (List<T>) getHibernateTemplate().findByCriteria(dc, pb.getBegin(), pb.getPageSize());return list;}@Overridepublic List<T> findList(DetachedCriteria dc) {return (List<T>) getHibernateTemplate().findByCriteria(dc);}@Overridepublic void saveorupdate(T t) {getHibernateTemplate().saveOrUpdate(t);}}

Dao实现类

package com.tangseng.dao.Imp;
import com.tangseng.dao.CustomerDao;
import com.tangseng.domain.Customer;public class CustomerDaoImp extends BaseDaoImp<Customer> implements CustomerDao {}

通过测试add方法接收参数正常,在debug模式下,当断点执行到getHibernateTemplate().saveorUpdate方法时跳转到ognl源码(看不懂),最后再页面输出错误信息,而控制台没有出现错误信息


点击保存,控制台打印接收到的参数


基本确定是getHibernateTemplate().saveorUpdate这个代码产生的问题,刚刚才发现,原来是事务没有提交。

原因在与配置Spring切入点的时候把,切入点配到Dao层去了。

要把Spring切入点配到service层的方法上才行

这篇关于[已解决]HTTP Status 404 - No result defined for action xxx and result exception问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118305

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT