为了在Action处理过程中可以访问到当前请求HttpServerRequest对象,通俗的说就是request.getParameter可以取到值.我们可以使用依赖注入机制的接口注入方法.接口注入需要的是已经被实现了的接口。这个接口包含了相应属性的setter,为Action提供值。
我做的这个神话网的例子中,有一个action需要request.getParameter取得value,所以我实现了ServletRequestAware接口,同进声明了一个HttpSerletRequest的属性.看起来好像是线程不安全的,其实在struts2中并没有问题,因为每个请求过来的时候都会产生一个新的Action对象实例,它并没有和其他请求共享一个对象,所以不需要考虑线程安全问题。
最后为这个Action关联上ServletConfigInterceptor拦截器。这个拦截器提供了一系列功能去获取HttpServletRequest,并可以把它注入到实现了ServletRequestAware接口Action中。我的这个项目使用xdoclet2,和annotation所以我们在action上方加入以下代码
*@xwork.action name="" namespace="" method=""
* @xwork.interceptor-ref name="servlet-config"
* @xwork.interceptor-ref name="params"
网摘:
拦截器提供了把HttpServletRequest 自动set到action中的功能,让我们能通过request, 把所需的值传回到JSPs。
分享到:
相关推荐
在后台的`SwitchAction.java`类中,我们实现了`ServletRequestAware`和`ServletResponseAware`接口,以便获取和设置HTTP请求和响应对象。`getNewPage`方法从请求中获取`Id`参数,然后将其作为属性传递给新页面。返回...
通过`ServletActionContext.getRequest()`、`request.getSession()`和`session.getServletContext()`等方法,可以直接获取到这些对象的实例,从而进行更底层的操作,比如读取请求参数、管理会话状态或访问全局应用...
这个接口允许我们直接访问`HttpServletRequest`对象,从而获取HTTP请求中的各种信息,比如请求参数、请求头、请求路径等。在描述中提到的"ActionContext类及其简单应用",虽然ActionContext是Struts2框架中的一个类...
类似地,还可以实现`ServletRequestAware`、`ServletResponseAware`和`ServletContextAware`等接口来获取更多的请求信息。 #### 配置Action - **使用通配符配置Action:** 通过通配符可以更加灵活地配置Action的...
例如,`ActionContext.getContext().put()`可以用来设置请求参数,而`ActionContext.getContext().get()`则用于获取这些参数。这使得开发者可以直接操作请求和响应对象,而无需显式地从HttpServletRequest和...
例如,`getApplication()`可以获取应用程序范围内的数据,`getParameters()`可以获取所有客户端提交的参数,`getSession()`则能获取session范围内的数据。此外,Action还可以实现ServletContextAware、...
此外,为了能够从请求中获取参数,Action类还应实现`ServletRequestAware`接口。MyEclipse可以自动生成Action类的框架,并根据表单字段自动添加getter和setter方法。 例如,对于上面的登录表单,你可以创建一个名为...
关于Struts 2的Action如何与Servlet API进行交互,业务逻辑Action可以通过实现ServletRequestAware、ServletResponseAware和ServletContextAware接口来实现。通过这些接口中的setter方法,可以将容器中的request、...
创建一个Action类来处理文件上传,需要继承自`ActionSupport`并实现`ServletRequestAware`接口。在Action中,文件将作为`File`对象存储在`ServletFileUpload`中。例如: ```java public class UploadAction extends...
- 实现特定的`ServletXxxAware`接口,如`ServletRequestAware`、`HttpSessionAware`等,让Struts2注入相应的对象。 #### 五、默认包`struts-default`的作用 - `struts-default`包定义了许多内置的拦截器和Result...
2. 类实现了`ServletRequestAware`, `ServletResponseAware`和`SessionAware`接口,表明它可以直接访问HTTP请求、响应和会话对象,方便处理登录操作。 3. 可能存在一个处理登录的方法,如`doLogin`,该方法从请求...