整理了网上的一些资料
附上一些链接:
1)struts.xml的常用配置解析
http://www.java3z.com/cwbwebhome/article/article2/TestS3.html
2)struts返回数据
http://www.360doc.com/content/08/1128/11/61497_2010494.shtml
1.最基本的,如果执行完struts2的函数后想跳转到另一个页面 ,则在struts.xml里配置
<package name="struts2" extends="struts-default">//name没有特定的要求用什么,一般是便于理解意思 <action name="example" class="xxx.xxx" > <result name="success" >xxx.jsp</result> </action> </package>
不得不说一下 result的 type属性了:默认是:”dispatcher“
chain 用来处理Action链 com.opensymphony.xwork2.ActionChainResult dispatcher 用来转向页面,通常处理JSP org.apache.struts2.dispatcher.ServletDispatcherResult freemaker 处理FreeMarker模板 org.apache.struts2.views.freemarker.FreemarkerResult httpheader 控制特殊HTTP行为的结果类型 org.apache.struts2.dispatcher.HttpHeaderResult redirect 重定向到一个URL org.apache.struts2.dispatcher.ServletRedirectResult redirectAction 重定向到一个Action org.apache.struts2.dispatcher.ServletActionRedirectResult stream 向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据 org.apache.struts2.dispatcher.StreamResult velocity 处理Velocity模板 org.apache.struts2.dispatcher.VelocityResult xslt 处理XML/XLST模板 org.apache.struts2.views.xslt.XSLTResult plainText 显示原始文件内容,例如文件源代码 org.apache.struts2.dispatcher.PlainTextResult redirect-action 重定向到一个Action org.apache.struts2.dispatcher.ServletActionRedirectResult plaintext 显示原始文件内容,例如文件源代码 org.apache.struts2.dispatcher.PlainTextResult
对于每一个type的具体应用,还没大弄懂,想用的时候网上应该能搜到。
2.如果想从struts只返回数据,页面不进行跳转(一般用ajax异步交换)
方法一:引入json-plugin.jar包
struts.xml按如下方式配置
<package name="json" extends="json-default"> <action name="example" class="xxxAction" > <result name="" type="json"></result> </action> </package>
方法二:将action 方法的return 值设定为null,将要返回的数据通过out.print或者。print.用个例子来说明吧。
@Override public String execute() throws Exception { data=new ArrayList<String>(); data.add("you and me"); data.add("he and she");
String test="test";
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=GBK"); PrintStream out=new PrintStream(response.getOutputStream());
out.print(data);
out.print(test);
//或者
ServletActionContext.getResponse().getWriter().write(data.toString());
return null; }
对应的struts.xml文件配置如下:
<package name="struts2" extends="struts-default"> <action name="example" class="xxxAction" > <result></result> </action> </package>
说明:
方法二,在js前端得到的是string,你可以在前端将string转化为你想要的数据格式(比如json),例如对于jQuery可以使用jqGrid插件的方式
前端采用ajax(可以选择jQuery,ExtJS,dwr等,都对ajax进行了很好的封装)
还有待完善,求指导