Struts2中Action方法默认返回一个String,改字符串会匹配struts.xml中的result去找对应的jsp页面,也就是说Action最终返回的是一个jsp页面。但是很多时候我们也需要用Struts2去返回一个普通的String(不是jsonString),那么有如下两种方法实现,这两种方法同适用于Android客户端请求后返回String的响应。
方法一:Action.java中的代码如下。struts.xml中配置不变
public String execute() throws Exception { //注意:加上这句就必须设置响应的编码格式,否则会出现乱码 HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String dbusername = "Charles"; if (username.equals(dbusername)) { out.println("seccess");//返回的字符串数据 return null; } return null; }
方法二:
TextStringAction.java
public class TextStringAction extends ActionSupport{ // input属性 private String username; private String password; // output属性 private InputStream inputStream; //这个名字和struts.xml中对应,不能写错 public InputStream getInputStream() { return inputStream; } public void setInputStream(InputStream inputStream) { this.inputStream = inputStream; } public String execute() throws Exception { String dbusername = "Charles"; if (username.equals(dbusername)) { inputStream = new ByteArrayInputStream("success成功" .getBytes("UTF-8")); return "success"; } return null; } // ------------省略getter/setter--------- }
struts.xml中设置resultType为stream.
<action name="testString" class="com.tarena.web.TextStringAction"> <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action>
相关推荐
`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理策略,使得开发者可以根据需求选择合适的方式。 首先,我们来看几个常见的返回...
- 普通类:只需要包含 `public String execute()` 方法即可。 2. **Action 配置**: - `<action>` 标签如果没有指定 `class` 属性,默认使用 `com.opensymphony.xwork2.ActionSupport`。 - `<result>` 标签如果...
### Struts2上传方法 #### 1. 文件上传的基本原理 在进行文件上传时,我们需要了解文件是如何通过Web表单提交的。表单元素的`enctype`属性指定了表单数据的编码方式,这对于文件上传至关重要。Struts2和其他Web...
- Struts2则更加灵活,既可以实现Action接口,也可以继承ActionSupport抽象类,甚至只需包含一个返回String类型的`execute()`方法的普通POJO即可作为Action使用。 2. **线程模式对比**: - Struts1使用单例模式,...
需要注意的是,Struts2的标签库提供了表单元素的回显功能,这在普通的HTML表单中是不具备的。 #### 三、Struts2配置文件详解 - **struts.xml配置**:这是Struts2框架的核心配置文件,位于项目的src目录下。在此...
- Struts2官方明确表示提供了一流的AJAX支持,这意味着开发者可以通过简单的标签来实现AJAX功能,就像使用普通的Struts标签一样。 - 实现方式上,Struts2并未重新开发新的AJAX框架,而是采用了已经成熟的框架如Dojo...
例如,Struts2的Tiles插件提供了布局和页面组合的功能,而Struts2 JSON插件则使得Action可以直接返回JSON格式的数据,适合于构建AJAX应用。 6. **源码分析和工具** 标签“源码”提示我们可能需要对Struts2的内部...
Struts 2是一个非常流行的Java Web框架,它极大地简化了MVC(模型-视图-控制器)架构的应用程序开发。而Ajax(异步JavaScript和XML)技术则为Web应用程序带来了无需刷新整个页面即可更新部分内容的能力,提高了用户...
### Struts2上传下载功能详解 #### 一、引言 在Web开发中,文件上传下载是一项常见的需求,尤其在用户交互频繁的应用场景中。Struts2作为一款成熟且广泛使用的MVC框架,提供了简洁而强大的文件上传下载功能。本文...
Action类可以是实现了Action接口的类,也可以是继承自ActionSupport的类,甚至可以是普通的POJO类,只要它们包含了返回String类型的execute或doExecute方法。 - **配置struts.xml**:这是Struts2的核心配置文件,...
4. Struts2框架根据Action返回的结果来渲染相应的视图,并将结果显示给用户。 #### 三、Struts2权限控制方法 ##### 3.1 基于容器的权限控制 在Struts2中,可以通过Web容器(如Tomcat)实现基本的权限控制。具体来...
在Struts2框架中,Action是核心组件之一,主要负责接收用户的请求并进行相应的业务逻辑处理,最后返回一个结果给用户。下面将详细介绍Action的相关知识点: ##### 2.1 Struts2 Action定义与使用 **定义方式**: 1. ...
- **Action 类型**:Struts2中的Action可以是任何普通的Java类(即POJO),而Struts1中的Action需要继承特定的基类。 - **拦截器**:Struts2引入了一种称为拦截器(Interceptor)的机制来处理请求,这使得开发过程...
在Struts2框架中,Ajax请求可以像处理普通HTTP请求一样处理。Struts2的动作类会接收到请求,并根据配置的Result类型返回相应的结果。在这个例子中,我们可以创建一个名为"register"的动作,处理用户的注册请求。在...
### 传智播客Struts2框架2016版视频教程笔记 #### 概述 Struts2是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC设计模式,能够帮助开发者更加高效地组织代码结构,并提供了一系列实用的功能,如拦截器...
- 不能使用Struts2的标签接收,只适用于普通的HTML标签。 #### 二、Struts2条件判断——`<s:if>`标签 **1. `<s:if>`标签的使用** - **语法示例**: ```html 登陆验证 ``` - **功能介绍**: - `<s:if>`...
在Struts2中,核心组件是Action类,它处理用户请求并返回相应的结果。而Spring框架则通过依赖注入(DI)来管理对象的生命周期和装配,使得代码更加松耦合,易于测试和维护。整合Struts2和Spring,我们可以将Action类...