Struts2返回普通String

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返回普通String
 

 

你可能感兴趣的:(struts2)