Struts2Utils 工具类

wewopargt的头像 wewopargt 0 2016-03-09 15:33 1

 基本信息

× 1   

浏览数: 28354

分享时间: 2 年 前

3

package com.deppon.oms.module.ltlsieveorder.shared.vo;


import java.io.IOException;

import java.io.OutputStream;

import java.util.Collection;

import java.util.Map;


import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;


import org.apache.commons.lang.StringUtils;

import org.apache.struts2.ServletActionContext;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


import net.sf.json.JSONArray;

import net.sf.json.JSONObject;


/**

 * Struts2工具类

 * 

 * @author 杨尚川

 */

public class Struts2Utils {


public static final Logger log = LoggerFactory.getLogger(Struts2Utils.class);


private Struts2Utils() {


};


private static final String ENCODING_PREFIX = "encoding";

private static final String NOCACHE_PREFIX = "no-cache";

private static final String ENCODING_DEFAULT = "UTF-8";

private static final boolean NOCACHE_DEFAULT = true;


private static final String TEXT_TYPE = "text/plain";

private static final String JSON_TYPE = "application/json";

private static final String XML_TYPE = "text/xml";

private static final String HTML_TYPE = "text/html";

private static final String JS_TYPE = "text/javascript";


public static HttpSession getSession() {


return ServletActionContext.getRequest().getSession();


}


public static HttpServletRequest getRequest() {


return ServletActionContext.getRequest();


}


public static HttpServletResponse getResponse() {


return ServletActionContext.getResponse();


}


public static String getParameter(String name) {


return getRequest().getParameter(name);


}


public static void render(final String contentType, final String content, final String... headers) {


try {


// 分析headers参数

String encoding = ENCODING_DEFAULT;

boolean noCache = NOCACHE_DEFAULT;

for (String header : headers) {


String headerName = StringUtils.substringBefore(header, ":");

String headerValue = StringUtils.substringAfter(header, ":");


if (StringUtils.equalsIgnoreCase(headerName, ENCODING_PREFIX)) {


encoding = headerValue;


} else if (StringUtils.equalsIgnoreCase(headerName, NOCACHE_PREFIX)) {


noCache = Boolean.parseBoolean(headerValue);


} else {


throw new IllegalArgumentException(headerName + "不是一个合法的header类型");


}


}


HttpServletResponse response = ServletActionContext.getResponse();


// 设置headers参数

String fullContentType = contentType + ";charset=" + encoding;

response.setContentType(fullContentType);

if (noCache) {


response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", 0);


}


response.getWriter().write(content);

response.getWriter().flush();


} catch (IOException e) {


log.error(e.getMessage(), e);


}


}


/**

* 直接输出文本.

* @see #render(String, String, String...)

*/

public static void renderText(final String text, final String... headers) {


render(TEXT_TYPE, text, headers);


}


/**

* 直接输出HTML.

* @see #render(String, String, String...)

*/

public static void renderHtml(final String html, final String... headers) {


render(HTML_TYPE, html, headers);


}


/**

* 直接输出XML.

* @see #render(String, String, String...)

*/

public static void renderXml(final String xml, final String... headers) {


render(XML_TYPE, xml, headers);


}


/**

* 直接输出JSON.

*

* @param jsonString

*            json字符串.

* @see #render(String, String, String...)

*/

public static void renderJson(final String jsonString, final String... headers) {


render(JSON_TYPE, jsonString, headers);


}


/**

* 直接输出JSON.

*

* @param map

*            Map对象,将被转化为json字符串.

* @see #render(String, String, String...)

*/

@SuppressWarnings("unchecked")

public static void renderJson(final Map map, final String... headers) {


String jsonString = JSONObject.fromObject(map).toString();

render(JSON_TYPE, jsonString, headers);


}


/**

* 直接输出JSON.

*

* @param object

*            Java对象,将被转化为json字符串.

* @see #render(String, String, String...)

*/

public static void renderJson(final Object object, final String... headers) {


String jsonString = JSONObject.fromObject(object).toString();

render(JSON_TYPE, jsonString, headers);


}


/**

* 直接输出JSON.

*

* @param collection

*            Java对象集合, 将被转化为json字符串.

* @see #render(String, String, String...)

*/

public static void renderJson(final Collection<?> collection, final String... headers) {


String jsonString = JSONArray.fromObject(collection).toString();

render(JSON_TYPE, jsonString, headers);


}


/**

* 直接输出JSON.

*

* @param array

*            Java对象数组, 将被转化为json字符串.

* @see #render(String, String, String...)

*/

public static void renderJson(final Object[] array, final String... headers) {


String jsonString = JSONArray.fromObject(array).toString();

render(JSON_TYPE, jsonString, headers);


}


public static void renderImage(byte[] data, String type) {


try {


HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType(type);

try (OutputStream out = response.getOutputStream()) {


out.write(data, 0, data.length);

out.flush();


}


} catch (IOException e) {


log.error("渲染图像失败", e);


}


}


}



  • cixexey的头像 cixexey 2018-07-15 16:49 代码数:0

    This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post. KFZ

  • kanong的头像 kanong 2016-07-12 22:42 代码数:0

    ??

  • cixexey的头像 cixexey 2018-08-05 19:52 代码数:0

    Positive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include.teachings 

  • cixexey的头像 cixexey 2018-08-05 19:55 代码数:0

    I just want to let you know that I just check out your site and I find it very interesting and informative..a course in miracles

  • cixexey的头像 cixexey 2018-08-05 19:56 代码数:0

    Thanks for the blog loaded with so many information. Stopping by your blog helped me to get what I was looking for. online courses

  • cixexey的头像 cixexey 2018-08-21 07:57 代码数:0

    Its a great pleasure reading your post.Its full of information I am looking for and I love to post a comment that "The content of your post is awesome" Great work. Healing Empire

  • lojzes的头像 lojzes 2016-12-23 14:27 代码数:0

    不错

您的评论: