问题描述:
struts-config.xml配置
<action attribute="itemForm" input="/jsp/errors.jsp"
name="itemForm" parameter="status" path="/jsp/ques/item"
scope="request" type="com.klx.struts.action.ItemAction">
<forward name="question" path="/jsp/ques/question.jsp"></forward>
</action>
itemAction.java代码
public class ItemAction extends DispatchAction {
private IItemDAO iitemdao;
/**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward selectAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List all = null;
try{
all = this.iitemdao.queryAll();
}catch(Exception e){
e.printStackTrace();
}
request.setAttribute("all", all);
return mapping.findForward("question");
}
public ActionForward aa(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ItemForm itemForm = (ItemForm) form;// TODO Auto-generated method stub
return null;
}
public IItemDAO getIitemdao() {
return iitemdao;
}
public void setIitemdao(IItemDAO iitemdao) {
this.iitemdao = iitemdao;
}
调用:http://localhost:8080/myznt/jsp/ques/item.do?status=selectAll
问题:如果按以上方式调用,则会转向执行itemAction类的execute()方法,selectAll方法不会执行(不知道为什么?还请大家指点),因为action默认总是执行execute()方法.
解决方式:如果想执行selectAll,有两种方法
1、在execute()方法中调用selectAll(),把值返回
2、不要写execute()方法,或更成其它名称,程序就可以执行selectAll();
分享到:
相关推荐
在调用Action时,可以在URL后面添加查询字符串来传递参数。例如,`actionName.action?paraName=arg0`表示传递一个名为`paraName`的参数,其值为`arg0`。 - **通过表单字段传递参数**: 如果使用表单提交的方式来...
默认情况下,Struts 2会调用Action类中的`execute()`方法。 2. **Struts.xml**: 这是Struts 2的配置文件,用于配置Action、拦截器等组件。 3. **Interceptors (拦截器)**: 拦截器用于处理Action执行前后的一系列...
在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
那么,在 Struts2 中如何动态调用 Action 的指定方法呢? 首先,我们可以在表单中使用 `<form action="login!register">` 将表单提交到 LoginAction 的 register() 方法。这是最简单的方式,但是这种方式不够灵活,...
在Struts2中,JavaScript可以用来发起Ajax请求,动态调用后台Action的方法。例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析...
当用户访问`HelloWorld.action`时,Struts框架会根据配置文件创建`HelloWorld`对象并调用`execute()`方法,最后展示`HelloWorld.jsp`页面。 Struts 2.0还提供了一种方式来改变默认调用的方法,这类似于Struts 1.x的...
拦截器可以用于实现通用的功能,如登录检查、权限验证等,这样就不需要在每个Action中重复编写这些代码。 此外,`ActionSupport`类还提供了错误和异常处理的机制。如果在`execute()`方法中抛出异常,Struts 2会自动...
- 当ActionServlet启动时,它会加载`struts-config.xml`文件中的配置信息到内存,用于后续请求的匹配和处理。 - 当ActionServlet接收到HTTP请求,它会在`doGet()`或`doPost()`方法中调用`process()`方法,接着由...
但通过`method`属性,我们可以指定特定的请求调用Action类中的不同方法。例如: ```xml <action name="myAction" class="com.example.MyAction"> <result name="saveSuccess">/success.jsp ...
### Struts2中Action间的...此外,值得注意的是,在进行Action之间的跳转时,还需要确保目标Action能够正确处理传递过来的参数,即在目标Action中定义相应的getter和setter方法。这对于确保程序的正常运行至关重要。
Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在处理用户请求时起到了至关重要的作用。DispatchAction是Struts提供的一个可扩展的Action类,它允许开发者将一个单一的...
- 在设计自动调用Action的过程中,需要确保不会因为恶意请求导致的安全问题。例如,可以通过限制Action的访问权限、对输入参数进行校验等方式来提高系统的安全性。 2. **用户体验**: - 考虑到用户体验,应尽量...
Struts是Java Web开发中的一个开源框架,主要负责控制应用程序的流程,而Action技术是Struts的核心组件之一,用于处理用户的请求。在这个场景中,我们讨论的是如何利用Struts的Action来实现对数据库数据的增删改查...
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
这个案例“struts014”很可能展示了如何在Struts2中实现异步调用来处理耗时操作,如数据库查询或复杂计算。 异步调用的基本概念是,客户端(通常是Web浏览器)发起一个请求,服务器不立即返回结果,而是启动一个...
默认情况下,Struts2会调用Action类中的execute方法来处理请求。但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml <action ...
- **Interceptor**(拦截器):拦截器是Struts2的核心组件,它们按照预定义的顺序对Action的调用进行拦截,实现如日志记录、权限验证、事务管理等功能。 2. **配置方式**: - **XML配置**:传统的Struts2配置通常...
在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...
1. **Action类**:在Struts2中,Action类是业务逻辑的核心,它接收用户请求,执行相关操作,并返回结果。Action类可以被配置在struts.xml文件中,指定其对应的URL和返回的结果类型。 2. **拦截器(Interceptors)**...