问题:struts1部分action方法访问报错,但后台无异常,请求不到相应方法
比如修改完后点击保存,请求并非跳到action的保存方法,其实未到达org.springframework.web.struts.DelegatingActionProxy的execute方法。
解决:首先检查各种配置,无变更,都没问题,三板斧也用遍了,就在束手无策之时,想起改变过页面某个模型对象的字段值,发现改变后的值是模型对象定义的字段类型不支持的,在set时失败,并中断了请求,但并无异常输出或抛出异常。把值修正为实体能支持的类型,保存成功。
分析:struts1在提交表单,发起请求时,在进入Action.execute()之前做了很多事,其中就包括处理表单,而此处XxxxForm中关联了模型对象,所以创建模型对象实例,并将各表单域的值赋给模型对象实例的对应属性……万事俱备了才根据ActionMapping调到XxxxAction.execute()。解决这个问题的过程走了弯路,模型对象只有简单get和set,且无异常抛出也无异常输出,不能直观地知道出错原因。
分享到:
相关推荐
然而,在这个过程中,如果用户在文件下载弹窗出现后选择取消下载,后台可能会出现异常,这通常是由于流处理不当导致的。本文将详细解析这个问题,并提供解决方案。 首先,我们需要理解Struts2中的文件下载原理。当...
请求URL中的部分可以动态解析为Action类中的方法名。比如,`myAction/save`会调用`save()`方法。 5. **注解配置** 除了XML配置,Struts2还支持使用注解来配置Action。在Action类或方法上添加`@Action`注解,可以...
5. **配置合并**:合并Struts 1和Struts 2的配置文件,确保请求能正确路由到相应的Action。 6. **测试与调试**:全面测试整合后系统的功能,确保原有功能的正常运行和新功能的正确实现。 在提供的源代码中,可能...
4. **创建Action类**:Action类是处理用户请求的核心。例如,创建一个名为`HelloWorldAction`的类,实现`com.opensymphony.xwork2.ActionSupport`接口,并重写`execute()`方法。 5. **配置Struts2配置文件**:创建...
总的来说,Struts1.x和Struts2.x都实现了从JSP页面到Action的数据传递,但在实现方式上有显著差异。Struts1.x依赖于ActionForm,而Struts2.x则使用了更强大的OGNL和拦截器机制。了解这些原理有助于我们更好地理解和...
ActionMapping则负责配置Action与URL的映射关系,使得请求能正确路由到相应的处理方法。 3. **拦截器(Interceptor)**:Struts2的核心组件之一,可以理解为对请求和响应进行预处理和后处理的中间层。拦截器链是...
5. **请求处理流程**:用户发送HTTP请求到服务器,Struts1的Front Controller(DispatcherServlet)拦截请求,根据struts-config.xml中的配置找到对应的Action,执行Action的execute方法,然后将控制权传递给JSP进行...
5. **异常处理**:Action还可以处理可能出现的异常,通过配置Struts的全局异常处理,可以统一处理所有Action可能抛出的异常,提高代码的健壮性。 在开发过程中,开发者可以根据需求创建多个Action类,每个类处理一...
5. **Action Mapping**:Action Mapping是配置文件中定义的规则,它指定一个URL请求如何映射到特定的Action,包括Action的类名、方法名等信息。 6. **Interceptor(拦截器)**:Struts1提供了一种预处理和后处理...
当用户提交表单时,Struts1会调用相应的Action方法来处理请求。 4. **ActionForm**:ActionForm是Struts1用来在Action和视图之间传递数据的对象。用户在表单中输入的数据会被封装到ActionForm中,然后传递给Action...
2. **Action类**:Action是处理请求的核心,它定义了处理用户请求的方法execute()。开发者需要继承Struts1的Action类并重写这个方法。 3. **配置文件**:在struts-config.xml中,开发者需要定义ActionMapping,关联...
7. **动态方法访问**:Struts2允许通过动态方法调用来处理Action,即无需预先在配置文件中指定Action方法,而是根据请求参数动态决定执行哪个方法。 8. **插件和扩展性**:Struts2拥有丰富的插件体系,如Tiles插件...
这些方法通常会对应到特定的URL路径,当用户发起请求时,Struts2会根据配置找到相应的Action执行。 2. **配置文件**:Struts2的配置主要在struts.xml文件中进行,该文件用于定义Action的映射、结果类型、拦截器链等...
这个配置表示所有以`save_`开头的请求都会映射到`SaveAction`类上,Struts2会自动根据请求的剩余部分尝试调用相应的方法。比如,请求`save_user`会被解析为调用`SaveAction`的`user()`方法。 在实际开发中,Struts...
### Struts In Action 电子书知识点总结 #### Struts简介 - **Struts**是一个用于构建企业级Java Web应用程序的开源框架。它采用MVC(Model-View-Controller)设计模式,将业务逻辑、用户界面和数据管理分离,从而...
**Ajax Struts 无刷新访问后台返回JSON数据详解** 在Web开发中,为了提供更流畅、高效的用户体验,无刷新(Ajax)技术被广泛应用于页面更新。结合Struts框架,我们可以实现后端服务与前端交互,返回JSON数据,使得...
7. Session和Application范围:Action类可以直接访问Session和Application范围的数据,方便在不同请求间共享信息。 总之,这个压缩包中的代码实例展示了如何在Struts2框架下创建和使用Action,通过学习和实践这些...
8. **异常处理(Exception Handling)**:Struts1提供了全局异常处理机制,当Action执行过程中抛出异常时,可以统一捕获并显示错误页面。 学习和分析这个小项目,可以帮助我们深入理解Struts1的工作原理,以及如何...
在Struts1.x中,Action类是核心组件之一,它负责处理HTTP请求,并将这些请求映射到相应的业务逻辑。Action类通常继承自`org.apache.struts.action.Action`基类,并覆盖其execute方法。执行execute方法时,Action会...
Struts1是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的控制器部分。Struts1在2000年代初期非常流行,因为它提供了一种结构化的解决方案,使得开发者...