WebWork 自定义resultType

本文介绍了一个自定义的DojoMessageResult类,该类实现了Struts2中的Result接口,用于处理Dojo框架的消息输出。通过设置不同的输出样式和内容类型,可以将消息以特定格式发送到客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大笑微笑生气吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头生气微笑大笑


偷笑我爱北京偷笑


偷笑上太阳升偷笑


偷笑伟大领袖偷笑


偷笑指引我们向前进偷笑

偷笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑偷笑

这里自定义一个dojoresult type ,必须implements Result 接口,重够Execute 方法

public class DojoMessageResult implements Result {//注意点1

private static final String OUTPUT_TYPE_NONE = "none";

private static final String OUTPUT_TYPE_LIST = "list";

private String outputStyle = OUTPUT_TYPE_NONE;

private String contentType = "text/html";

public void execute(ActionInvocation invocation) throws Exception {//注意点2
HttpServletResponse resp = ServletActionContext.getResponse();
if(StringUtil.isNotEmpty(contentType)){
resp.setContentType(contentType);
}
List messages = DojoHelper.getResponseDojoMessages();
for(Iterator iter = messages.iterator();iter.hasNext();){
DojoHelper.DojoMessage aMsg = (DojoHelper.DojoMessage)iter.next();
//now we just handle normal messages
if(!aMsg.isMsgKey){
/*
* Encode all response messages into UTF-8 format.
* And you should decode them using javascripts like this:
* <pre>
* var rtnMsg = unescape(decodeURI(respData));
* </pre>
* the decodeURI() help you to decode UTF-8 chars back to your
* original messages, but some special chars will still encoded
* ,like '/'(the uri path charactor), so you should use the
* unescape() function to handle these special charactors
*/
String content = URLEncoder.encode(aMsg.content,"UTF-8");
//decode the '+' back to space
content = content.replace("+"," ");
if(outputStyle.equals(OUTPUT_TYPE_LIST)){
content = "<li>"+content+"</li>";
}
resp.getWriter().append(content).append('/n');
}
}
resp.flushBuffer();//注意点3
DojoHelper.cleanUp();
return;
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值