Struts2Utils 工具类

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

 基本信息

× 1   

浏览数: 30350

分享时间: 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);


}


}


}



12 [下一页]

  • pevahanifo的头像 pevahanifo 2018-10-20 19:53 代码数:0

    Thanks for this great post, i find it very interesting and very well thought out and put together. I look forward to reading your work in the future. megabucksranch.com

  • ossaa的头像 ossaa 2018-10-21 18:40 代码数:0

    Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..

    Enjoy Mexico Villa Rentals

  • ossaa的头像 ossaa 2018-10-21 21:42 代码数:0

    Interesting post. I Have Been wondering about this issue, so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks

    Enjoy Mexico top desinations

  • ossaa的头像 ossaa 2018-10-22 17:21 代码数:0

    very interesting post.this is my first time visit here.i found so many interesting stuff in your blog especially its discussion..thanks for the post!

    Enjoy Mexico Villa Rentals in Cabo San Lucas

  • ossaa的头像 ossaa 2018-10-22 20:04 代码数:0

    I have read your blog it is very helpful for me. I want to say thanks to you. I have bookmark your site for future updates.

    Enjoy Mexico Villa Rentals in Punta Mita

  • ossaa的头像 ossaa 2018-10-22 21:58 代码数:0

    I admit, I have not been on this web page in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. professionals. I thank you to help making people more aware of possible issues.

    iepnw.com

  • ossaa的头像 ossaa 2018-10-31 16:48 代码数: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.

    Poster Displays

  • ossaa的头像 ossaa 2018-11-01 19:25 代码数:0

    Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job.

    SEO Agentur Ruhrgebiet

  • 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

    ??

您的评论: